ワードプレス固定ページに特定のカテゴリー(名・スラグ名)の記事を取得し表示する

ワードプレスでできそうで、カスタマイズしないとできないこと。
固定ページにphpって直接書き込めないの~~~っ。
トップページはfrontpage.phpで作っていれば、php直書きできますが
固定ページの場合は、ショートコード挿入で、挿入した場所に、指定phpを追記する方法メモ。

★1 テーマ編集から function.php 変更(固定ページ内でphpを実行するための追記)

[php]
<?php //固定ページにショートコードでphp有効化
function Include_my_php($params = array()) {
extract(shortcode_atts(array(
‘file’ => ‘default’
), $params));
ob_start();
include(get_theme_root() . ‘/’ . get_template() . "/$file.php");
return ob_get_clean();
}
add_shortcode(‘myphp’, ‘Include_my_php’);
?>
[/php]

★2 WP/wp-content/themes/xxxxx/ 内に、例えば page-dog.php 追加する。
page-dog.php 内はphpで表示させたい内容、HTMLなどで表示調整。

例>特定カテゴリー名「dog」のうち最新記事3件、投稿日とタイトルと記事を表示させる場合。

[php]
<?php $posts = get_posts(‘category_name=dog&showposts=3’); ?>
<?php if($posts): foreach($posts as $post): setup_postdata($post); ?>
<h3><a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post->post_title; ?></a></h3>
<p align="right"><?php echo get_the_date(); ?></p>
<?php the_content(); ?>
<?php endforeach; endif; ?>
[/php]

※ループ処理、foreach → endforeach がポイントらしい。(謎)
WPのループ処理についてわかりやすかったphp解説のページ
http://ht79.info/2013/08/19/wordpress-foreach/

★3 固定ページにショットコード

[myphp file=’page-dog’] ([]は半角で)

 

※参考にさせていただいたページ

 

★他にもプラグインでphp書き込めるようにする方法もあるらしいのですが
なるべくプラグイン追加したくなかったので・・・しかも設定画面やっぱり英語だし。(TT▽TT)ダァー

Exec-PHP

[WP]投稿記事でPHPを実行できるWordPressプラグイン「Exec-PHP」|WordPressプラグイン|WEBデザインの小ネタとTIPSのまとめサイト「ウェブアンテナ」
投稿画面などででPHP を実行できるWordPressプラグインが「Exec-PHP」です。 他にも runPHP のような同じ機能を持ったプラグインがありますが、Exec-PHP はテキストウィジェットでもPHPを実行できるので、ウィジェットを多用するブ…

 

★このページにphpを表示させるためにプラグイン追加しました。^_^;
SyntaxHighlighte

※参考にさせていただいたページ

お陰様で、なんか、凄いPHPのプロっぽいページに見えますが・・・プログラム素人です。

コメント