Regarding Posts

for your first quetion : you can either use the excerpt() instead of the_content() in your loop, or you can use this function below :

function limitcontent($limit) {
  $content = explode(' ', get_the_content(), $limit);
  if (count($content)>=$limit) {
    array_pop($content);
    $content = implode(" ",$content).'...';
  } else {
    $content = implode(" ",$content);
  } 
  $content = preg_replace('/\[.+\]/','', $content);
  $content = apply_filters('the_content', $content); 
  $content = str_replace(']]>', ']]>', $content);
  return $content;
}

usage :

<?php echo excerpt(25); ?>

for your second question : You can not .

(well – not in an easy manner, it would involve hooking to the pre_post_save , and regecting a save if an image was not attached to a post – and this function is not something you would write on-the-fly without checking – at least not me )

but , if you MUST have an image for each post , you can use a different approach, which I have used many times, which is to define a default image for a post with no attachments . you can use this by category, by taxonemy, or even define a default post_thumbnail if none is defined by users.

edit – you CAN – after 5 minutes of rethinking – here is how to force image upload on post :

add_action( 'pre_post_update', 'krembo99_no_image_no_publish' );

function krembo99_no_image_no_publish()
{
global $post;
$attachments = get_children( array( 'post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
//$attachments = get_children( array('post_parent' => $post->ID, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
//if((!$attachments)) {
if(count($attachments) === 0){
wp_die( 'you can not publish a post without an image, please update attachments !' );
}
}

someone might want to change the wp_die with the warning bar , but this function works now .
* – not fully tested, only on posts…