投稿にサムネイルがあるかどうか、また表示するかどうかを確認する条件を作成します。それ以外の場合は、投稿の最初の画像を表示します。
私は私の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();
?>
イメージを入手してください あなたが必要としていること、そしてより良いことをします。不必要な機能がたくさんあることに圧倒されることはなく、それが言っていることを行います。それがあなたが必要とすることをするかどうか確かめるためにそれを試みなさい。
Get the Imageプラグインはどのように画像を取得しますか?
カスタムフィールド(あなたが選択したもの)で画像を探します。
カスタムフィールドで画像が追加されていない場合は、_ post_thumbnail()を使って画像を確認してください(WP 2.9の新しい画像機能)。
画像が見つからない場合は、投稿に添付されている画像が取得されます。
画像が添付されていない場合は、投稿コンテンツから画像を抽出できます(デフォルトではオフ)。
この時点で画像が見つからない場合は、設定した画像がデフォルトになります(デフォルトでは設定されていません)。
これでうまくいくはずです、私はそれを使っています、そしてそれはとても簡単で簡単です、あなたの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');