2014.09.02 Web Wordpress,カテゴリー,プラグインなし,動的,投稿内,特定,読み込む
WordPressでのサイト構築において、例えばsingle.php(単一ページ)やpage.php(固定ページ)などのphp上に、特定のカテゴリーやタグを指定して動的なページを生成することができる。しかしながら、その単一ページや固定ページから生成されるHTMLのエディタをつかったページ内では、phpをつかった動的なタグはつかえない。
もっとわかりやすくいえば、Wordpressのダッシュボードにある『投稿』から記事を投稿する場合、その投稿のHTMLエディタ上にphpを記述するとphpが二重に動作してしまうので、ページが表示されないのである。つまり、記事内で特定のカテゴリーやタグの記事を動的に読み込んで表示することはできないのである。
記事内に特定のカテゴリーやタグの記事を動的に読み込むことができれば、サイト自体のボリュームをもっと広げられると考えた末、そのような手段を教わることができたのでメモしておこうと思う。(プラグインによって制御することもできるようだが、実際に2,3個試したところうまく動作しなかったので、今回のfunctions.phpに記述する方法が一番確実であった。)
//オリジナルショートコード
function my_list_category_func($atts) {
//デフォルトの変数
extract(shortcode_atts(array(
‘category’ => ”,
‘numberposts’ => ‘5’,
), $atts));
//特定カテゴリー情報を取得
$args = array(
‘cat’ => $category,//カテゴリーID
‘numberposts’ => $numberposts,//表示件数(-1で全件取得)
);
$your_posts = get_posts($args);
global $post;
$output = ”;
$output = “
\n”;
endforeach; wp_reset_postdata();
$output .= “
\n”;
return $output;
}
add_shortcode(‘MyListCategory’, ‘my_list_category_func’);
function my_list_tag_func($atts) {
//デフォルトの変数
extract(shortcode_atts(array(
‘tag’ => ”,
‘numberposts’ => ‘5’,
), $atts));
//特定タグ情報を取得
$args = array(
‘tag’ => $tag,//タグスラッグ
‘numberposts’ => $numberposts,//表示件数(-1で全件取得)
);
$your_posts = get_posts($args);
global $post;
$output = ”;
$output = “
\n”;
endforeach; wp_reset_postdata();
$output .= “
\n”;
return $output;
}
add_shortcode(‘MyListTag’, ‘my_list_tag_func’);
カテゴリーの場合:
*↑はカテゴリーID:1、表示件数5の場合
*全てを表示したい場合は nuberposts=-1
*タグの場合はIDではなく、スラッグを記述します。
上記の記述によって、記事内に特定のカテゴリーやタグの記事を動的に読み込むことができる。
年別一覧