2017年5月23日火曜日

【WP】 カスタム投稿のカテゴリ(ターム)を色分けした新着情報を作る方法 【WordPress】

カスタム投稿の新着情報にカテゴリーを色分けして表示させる+カテゴリー複数選択ありの場合。


参考にしたサイト:
WordPressで新着記事を「カテゴリー名表示+色分け」で表示したい(カスタム投稿バージョン)
get_the_categoryでカテゴリー名とスラッグを取得して個別に色を変える方法

正直にいって上記二つの記事のコードを合体させてちょちょっといじっただけです。ほぼ自分用メモです。

====================
<?php query_posts("post_type=●●●&posts_per_page=5&paged=".$paged);//●●●に投稿タイプ名を入れる ?>
<?php if(have_posts()): ?>
<dl class="event">

<?php while(have_posts()): the_post(); ?>
<dt class="date"><?php the_time('Y年m月d日'); ?></dt>
<?php $terms = wp_get_object_terms($post->ID, '○○○');// ○○○にタクソノミー名を入れる
if($terms ){
foreach($terms as $term) {
echo '<dd class="'.$term->slug.'">'.$term->name.'</dd>' ;}
};?>
<dd class="txt"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></dd>
<?php endwhile; ?>

</dl>
<?php else: ?>
<p>現在投稿記事はありません。</p>
<?php endif; wp_reset_query(); ?>
====================


カテゴリ名が入るddのクラス名がタームのスラッグになるので、あとはそのクラスに対してなにかしらスタイルを付ければ色分けできるようになります。


それでは、今回はこれで終わります。

2017年5月18日木曜日

【WP】 カスタム投稿のアーカイブが表示されない(404)時の確認事項 【WordPress】


カスタム投稿を設定した後でページを確認したら、単体ページ(single-***.php)は表示されるけど、一覧ページ(archive-***.php)は表示されない(404エラー)というときに確認するべき事項を紹介します。
※プラグインを使わずにfanction.phpでカスタム投稿タイプの定義を行っている場合です。

1、「設定」のパーマリンク設定を更新してみる


実はこれで解決することが多いようです。


2、アーカイブのURLを調べてみる


パーマリンクの設定をいじっている場合、実際のアーカイブページのパーマリンクと自分が思っているものが違うことがあります。
とりあえずは、アーカイブURLを確認してみることをおすすめします。

<?php echo get_post_type_archive_link( '***' ); ?>

上記をsingle-***.phpなどのテンプレートに入れると、アーカイブのURLが表示されます。


このとき、get_post_type_archive_linkを挿入した個所に何も表示されない場合はそもそもアーカイブ設定を行っていない可能性があります。
fanction.php内でカスタム投稿の記述をしているところにhas_archiveの記述漏れがないか確認してみてください。
カスタム投稿タイプ設定の記述をどこからかコピペで持ってきた場合に陥りやすいです。
というのも、WPのパーマリンク設定がデフォルトの場合、has_archiveの記述がなくてもカスタム投稿がアーカイブを持てるため、省略されている場合が多いからです。

パーマリンクの設定をいじってデフォルト以外にしている場合はhas_archiveをtrueに設定することで、カスタム投稿がアーカイブページを持つことができます。
register_post_type関数の配列のどこかに「'has_archive' => true,」を追加してあげればOKです。

【※】fanction.php内をいじった後は、必ず「設定」のパーマリンク設定を更新してください。



先日、has_archiveの記入漏れで自分が嵌ってしまいました。
その時調べた限りではプラグインのhas_archiveをtrueにする方法はよく見かけたのですが、fanction.php内のhas_archiveのことを指摘する記事はなかったように思うので、ここにメモとして残しておきます。
同じような状態に陥っている方の助けになれば幸いです。

それでは、今回はこれで終わります。