web-dev-qa-db-ja.com

投稿に1または他の方法で投稿の最初の画像が表示されている場合に

投稿にサムネイルがあるかどうか、また表示するかどうかを確認する条件を作成します。それ以外の場合は、投稿の最初の画像を表示します。

私は私のloop.phpの中でこのようなことを試したが、うまくいかないようだった:

<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(array(640,320)); ?></a>
<?php } else { ?>
<a href="<?php the_permalink(); ?>"><img src="<?php echo catch_that_image(); ?>" /></a>
<?php } ?>

これは私の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];

        // no image found display default image instead
        if(empty($first_img)){
             $first_img = get_bloginfo('template_url')."/images/no_image.gif";
        }
            return $first_img;
    }

    $imgURL = catch_that_image();
?>
3
Matt

イメージを入手してください あなたが必要としていること、そしてより良いことをします。不必要な機能がたくさんあることに圧倒されることはなく、それが言っていることを行います。それがあなたが必要とすることをするかどうか確かめるためにそれを試みなさい。

Get the Imageプラグインはどのように画像を取得しますか?

  • カスタムフィールド(あなたが選択したもの)で画像を探します。

  • カスタムフィールドで画像が追加されていない場合は、_ post_thumbnail()を使って画像を確認してください(WP 2.9の新しい画像機能)。

  • 画像が見つからない場合は、投稿に添付されている画像が取得されます。

  • 画像が添付されていない場合は、投稿コンテンツから画像を抽出できます(デフォルトではオフ)。

  • この時点で画像が見つからない場合は、設定した画像がデフォルトになります(デフォルトでは設定されていません)。

3
its_me

これでうまくいくはずです、私はそれを使っています、そしてそれはとても簡単で簡単です、あなたのfunctions.phpにこれを貼り付けるだけです:

function autoset_featured() {
    global $post;
    $already_has_thumb = has_post_thumbnail($post->ID);
    if (!$already_has_thumb) {
        $attached_image = get_children( 
            "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" 
        );
        if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {
                set_post_thumbnail($post->ID, $attachment_id);// the size of the thumbnail is defined in a function above
            }
        }
    }
}  //end function

add_action('the_post', 'autoset_featured');
add_action('save_post', 'autoset_featured');
add_action('draft_to_publish', 'autoset_featured');
add_action('new_to_publish', 'autoset_featured');
add_action('pending_to_publish', 'autoset_featured');
add_action('future_to_publish', 'autoset_featured');
1
Sara