【WordPress】特定カテゴリの目次を作ってみる
※現在は使用しておりませぬ。
本家サイトでカスタマイズネタを書いていた時、
カスタマイズに関連する記事のみの目次ページを作ってみようと思った。
具体的には”カスタマイズ”カテゴリに分類した記事の一覧だ。
固定ページに作ることにしたが
記事のリンクリストを手書きで並べるのも面倒くさいし、追加忘れもあり得ると思い、
自動でリンクリストが出来る方法がないかと調べた結果、下記の記事を見つけた。
参考記事
WP SEOブログ様 - 「WordPressの固定ページを目次ページとして使う方法」
投稿画面でPHPを使えるようにするプラグイン「Exec-PHP」を使って記事内に下記コードを記述すればいいらしい。
<ul> <?php $posts = get_posts('numberposts=10&cat=21'); global $post;?> <?php foreach($posts as $post): ?> <li><?php the_time('m月d日'); ?>・・・<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endforeach; ?> </ul>
しかし、「Exec-PHP」はセキュリティ上の問題もあるらしい。
回避方法として、functions.phpにショートコードとして定義する方法もあるが、
functions.phpはなるべくいじりたくない。
開発中のコードにエラーが有った場合、最悪ダッシュボードにもアクセスできなくなるからだ。
何かいい方法はないかと調べたところ、「Shortcode Exec PHP」というプラグインを見つけた。
プラグイン内でPHPコードを定義し、それを記事内でショートコードとして呼び出せるものです。
エラーになっても、記事内でエラーが発生するだけなので、気持ち的にも安心。
とりあえず実験すべく、上記のコードをショートコード化してみた。
echo '<ul>'; $posts = get_posts('numberposts=-1&cat=584'); global $post; foreach($posts as $post) { echo '<li>'. PHP_EOL; echo '<a href="',the_permalink(),'">',the_title(),'</a> (',the_time('Y年n月j日'),')'.PHP_EOL; echo '</li>'. PHP_EOL; } echo '</ul>';
2行目のcat=584はカテゴリ番号。
このコードを”customize_category_index”と名付け、固定記事内で下記コードを記載。
[customize_category_index]
とりあえず、こんなページができました。
カスタマイズ記事一覧
コメントはまだありません。