WordPressの「注目画像」機能を活かしたテーマでサイトを立ち上げています。私のエンドユーザーは世界で最も技術に精通しているわけではないので、カテゴリにデフォルトの「注目の画像」が投稿に割り当てられるように設定したいと思います。投稿に複数のカテゴリが割り当てられている場合は、最初のカテゴリが使用されます。
既存のプラグインまたはこれをコーディングする方法はありますか?
WordPressの「注目画像」機能を活かしたテーマでサイトを立ち上げています。私のエンドユーザーは世界で最も技術に精通しているわけではないので、カテゴリにデフォルトの「注目の画像」が投稿に割り当てられるように設定したいと思います。投稿に複数のカテゴリが割り当てられている場合は、最初のカテゴリが使用されます。
既存のプラグインまたはこれをコーディングする方法はありますか?
回答:
アイキャッチ画像が表示されているテンプレートで<?php the_post_thumbnail( 'thumbnail' ); ?>
、アイキャッチ画像が設定されているかどうかを条件にして、設定されていない場合はデフォルトに設定することができます。
これを行う1つの方法は、すべてのデフォルトイメージをディレクトリに配置し、それらにカテゴリの名前を付けることです。次に、news.jpgとreview.jpgを使用<?php the_post_thumbnail( 'thumbnail' ); ?>
して、注目画像を表示する代わりに、これを使用します。
<?php
if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) {
the_post_thumbnail('thumbnail');
} else { ?>
<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> <?php }
endif;
} ?>
したがって、上記のこの例では、投稿がニュースカテゴリにあり、ライターが注目画像を設定しなかった場合、デフォルトでに保存されている画像になりますhttp://www.yoursite/whatever/directory/news.jpg
。
get_the_category()
1つのカテゴリのみが返され、どのカテゴリを使用するかを決定する方法を忘れてしまいます。
<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else :?>
<img src="<?php bloginfo('template_directory'); ?>/your image directory name in theme folder/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" />
<?php endif;?>
カテゴリ名にスペースが含まれているという問題が発生しました。上記のコードを自分のニーズに合わせて少し変更しました
<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>
<?php the_post_thumbnail('thumbnail'); ?>
<?php else :?>
<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_ID; ?>.jpg" />
<?php endif;?>
基本的にただ変える
echo $category[0]->cat_name;
に
echo $category[0]->cat_ID;
これにより、画像が16.jpgまたは3.jpgになり、カテゴリ番号に対応します。
上記を行うためのよりクリーンな方法;)
if ( ( function_exists( 'has_post_thumbnail' ) ) && ( has_post_thumbnail() ) ) :
the_post_thumbnail( 'thumbnail' );
else :
?><img src="whatever/directory/<?php
$category = get_the_category(); echo $category[0]->cat_name;
?>.jpg" /><?php
endif;