h2ospace

[WordPress Tips] ショートコードでエントリー内にページリストを表示する

2010-12-02 19:00:13

WordPressで記事の中でページの一覧を表示するなど、プログラムを組み込みたい場合があります。
例えばサイトマップなどで、冒頭のコピーなどはページとして管理しつつ、サイトマップ自体はプログラムで生成したいといった場合。

このような場合、記事の中にPHPを直接埋め込めるプラグインなどもありますが、「ショートコード」を使うのが最もスマートです。
ショートコードは、WordPressが標準で持ち合わせている機能で記事の中に次のようなキーワードを埋め込みます。

[sitemaps]

そして、テーマが格納されているフォルダに「functions.php」というファイルを作成して、次のようなプログラムを書き込みます。

function sitemaps_func($attr) {
	$results = new WP_Query(array('post_type'=>'page', 'orderby'=>'menu_order', 'order'=>'ASC'));

	$ret = '';
	foreach($results->posts as $post) {
		$ret .= '<dd><a href="' . get_permalink($post->ID) . '">'. $post->post_title . '</a></dd>';
	}

	return $ret;
}
add_shortcode('sitemaps', 'sitemaps_func');

これで、先程の「[sitemaps]」というキーワードがプログラムとなり、サイトマップが展開されるようになります。ポイントは「function xxx_func()」としてファンクションを定義し、それを「add_shortcode()」ファンクションでショートコードとして登録していること。

同じようにいろいろな名前でショートコードを作ることができます。何か、必要な機能があったらドンドン作ってみるとよいでしょう。

※このエントリは ブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet Japan編集部の見解・意向を示すものではありません。
  • 新着記事
  • 特集
  • ブログ