【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>&nbsp;(',the_time('Y年n月j日'),')'.PHP_EOL;
	echo '</li>'. PHP_EOL;
}
echo '</ul>';

2行目のcat=584はカテゴリ番号。
このコードを”customize_category_index”と名付け、固定記事内で下記コードを記載。

[customize_category_index]

とりあえず、こんなページができました。
カスタマイズ記事一覧

  1. コメントはまだありません。

  1. トラックバックはまだありません。


二 × 8 =