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のことを指摘する記事はなかったように思うので、ここにメモとして残しておきます。
同じような状態に陥っている方の助けになれば幸いです。

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

2016年10月16日日曜日

【WP】 パーマリンクの枝番「-2」がどうしても消えないのは、メディアが原因かもしれない【WordPress】


メディアライブラリも見てみて!!!!

言いたいことはその一言だけですが、これで終わるとあまりにも不親切なので少しだけ説明をします。

WPは、すでに存在するパーマリンク(スラッグ)をつけようとすると勝手に枝番(-2)を振ります。
これはサイト内でURLが重複するのを防ぐために正常な動作です。
そこでよく陥るのが

「重複してないのに枝番がついて消せない」

というもの。

大抵はゴミ箱の中に重複するパーマリンクの投稿があったりするので、該当記事を完全に削除することで枝番問題は解決します。
ただし、パーマリンクに数字のみを指定すると、重複するものがなくても枝番がついてしまうようです。(参考URL:[解決済] パーマリンク枝番-2がとれない/)


でも、投稿記事、固定記事、カテゴリをそれぞれゴミ箱の中も含め同じパーマリンクが存在していない、数字のみでもないのに枝番が消えない!!
ということが起こったら、メディアライブラリに重複する名前の画像やpdf等がないか確認してみてください。

画像やpdfはそもそも、何もいじっていなければ「/wp-content/uploads/年/月/」という形でサーバーに保存されるため、たとえ付けたいパーマリンクと同じ名前のファイルが存在していても何も影響がないように思えます。

しかし、メディアライブラリでファイルを見ると、右下に「添付ファイルのページを表示」というものがあります。




クリックすると、そのファイルが使用されているページが開くわけなのですが、どこにも使われていないけどメディアライブラリに入っているファイルで「添付ファイルのページを表示」をクリックすると、「httpp://サイトのURL/ファイル名」というページがあることになっているのです。

ためしに、メディアライブラリ内に入っているファイル名と同じパーマリンクの固定ページを作ろうとしてみましたが、やはり枝番(-2)が付きました。そして、ファイルを削除すると枝番を消すことができました。
これは、そのファイルがほかのページで使われている・いないにかかわらず同じ動作でした。
 パーマリンクの枝番問題にメディアファイルも絡んでいるのは間違いないようです。(申し訳ありませんが、どういう理屈でそうなるのかまでは調べていないのでわかりません)

ちなみにこの「添付ファイルのページを表示」を無効にする方法もあるようなので、興味がある方は調べてみてください。


パーマリンクの枝番について、その解決策についての記事はほかにもたくさんありますが、メディアライブラリについて触れている記事はなかったように思ったので今回はこの記事を書いておくことにしました。
この記事がどなたかの助けになれば幸いです。

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