0

私はWordpressの初心者で、これが私の最初のWordpressサイトですので、ご容赦ください。

これは私のindex.phpです:

<?php get_header(); ?>
   <div id="content">
        <section id="posts">
                <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
                <section class="post">
                    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?>        </a></h2>
                    <div class="holder">

                    </div>
                    <p><?php the_content(); ?></p>
                </section>
                <?php endwhile; else: ?>
     <p><?php _e('Nothing here, sorry.'); ?></p>
     <?php endif; ?>
        </section>
        <aside>
            <?php get_sidebar(); ?>
        </aside>
         <div style="clear:both"></div>
        </div>   
        <div class="push"></div>
    </div>
</div>  
    <?php get_footer(); ?>

基本的に、私が望むのは、投稿から最初の画像を見つけて、.holder div 内に配置することです。jQuery の detach() および append() と同様に機能するはずです。

フィルターとアクションを使用する必要があることはわかっていますが、開始方法がわからないため、何か助けていただければ幸いです。

4

1 に答える 1

1

あなたのファイル functions.php で:

<?php function catch_that_image() {
global $post, $posts;
$first_img = '';
ob_start();
ob_end_clean();
$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
$first_img = $matches [1] [0];

if(empty($first_img)){ 
 //Defines a default image
 $first_img = "/images/default.jpg";
}
return $first_img;
}
?>

そしてあなたのファイルindex.phpにこれを置きます:

<div class="holder">
   <img src="<?php echo catch_that_image() ?>" />
</div>
于 2013-03-15T14:14:53.877 に答える