mpad さん、こんにちは。
WordPress ループ内なら、例えば以下のような関数を作成して振り分けることが可能です。
もっといい方法があるかもしれませんが、その時はごめんなさい。
//テーマの functions.php 内に記述
function post_has_image($pid=0) {
$pid = ( empty($pid) || !is_int($pid) ) ? $GLOBALS['post']->ID : $pid;
if ( empty($pid) ) return false;
$children = get_children('post_type=attachment&post_parent=' . $pid);
if ( !empty( $children ) ) {
foreach ( $children as $attachment ) {
if ( wp_attachment_is_image( $attachment->ID ) ) return true;
}
}
return false;
}
<?php
//テンプレート上、WordPress ループ内での使い方の例
if ( post_has_image() ) {
echo '画像あり';
} else {
echo '画像なし';
}
?>
ただし条件として、その投稿から画像をアップロードしている場合に限ります。
外部の画像ファイルや、別の投稿からアップロードした画像などをメディアライブラリから選択して記事中に貼り付けている場合にはチェックの範囲外なので、場合によっては投稿中に img 要素が含まれているかどうかを the_content の内容を正規表現でチェックするような方法を取る必要があるかもしれません。
function post_content_has_imgtag() {
$content = apply_filters( 'the_content', get_the_content() );
if ( preg_match('/<img[^>]*\/?>/', $content) ) return true;
return false;
}
トピック投稿者
mpad
(@mpad)
mizubeさん、ご親切にアドバイスいただきありがとうございます!
早速やってみます、ありがとうございました!