PR

あなたの悩みを解決 WordPress 固定ページに投稿ページの一覧を表示する方法!!

スポンサーリンク
スポンサーリンク

WordPress使ってますか?
管理人は正直仕組みがあまり良く判らないまま一年位利用しています。

で先日固定ページに投稿の一覧を表示したいという状況が発生したのでその対応策を備忘録的に記載したいとお思います。

スポンサーリンク

どんなときに固定ページに投稿を表示させたいのか。

例1:ある承認の特売情報の一覧を表示したいとき
ジャンル ノートパソコン
商品名  〇Xノートブック
商品説明 CPUはxxでメモリ16GBの超高性能ノートパソコンです。

というような情報の後に特売価格の一覧を表示
クリスマスセール 12月15日~ 12月20日 価格200,000円
年末年始 セール 12月21日~ 1月20日  価格195,000円

のように表示させてあげれば過去の価格の推移が判り易いので使いやすいページと言えるのではないかと思います。
視点を変えて競合店の価格を同時に表示するというのにも使えるかもしれません。

今回管理人が行ったのはそのジャンル(カテゴリ)のレビュー記事を表示してサイト内の記事をより多く見てもらうというものです。

実際どのような処理で行うか

恐らく色々なやり方が有ると思いますが今回はショートコードというのを利用しました。
WordPress上では直接PHPを実行できないので記事上PHPを呼び出すための処理がショートコードです。
※PHPを実行可能にするプラグインも有る様ですがセキュリティ的な観点からお勧めしません。

今回の処理は下図のように
・固定ページに「ショートコード」を記載
・Function.phpで実際に処理をするPHPの呼び出し
・実際に処理をするPHPで対象データの抽出およびデザインの付与

2016011301

固定ページに「ショートコード」を記載

実行するPHPの名前をcategoryViewという名前に決めています。
実際の記載例
[myphp file=”categoryView”]

Function.php

簡単な説明
「include」で実際に実行する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

簡単な処理説明
変数:
numberposts 表示する件数
category   対象のカテゴリ 
※カテゴリ番号はカテゴリ編集の画面で該当カテゴリにカーソルを合わせた際、左下に表示される文字列の中のID=に続く数字です。

$size     画像の大きさ
the_post_thumbnail( $size, $attr ) アイキャッチ画像の取り出し。
the_permalink() リンク
the_title()文書のタイトル

2016011303

実際の表示

以下は実際に改修したサイトの表示例です。

2016011302_1

管理人の感想

今回の処理は実は投稿の中でも使えますので色々な用途に使えそうです。
今回は実装していませんがカテゴリ番号を引数で渡すようにすればより使い勝手が良くなりそうです。

注意:Fnction.phpは誤って更新してしまうとサイト自体が立ち上がらなくなる重要なファイルです。
   もし、試される場合は必ずバックアップを取ってからご自身の責任でお願いします。
   管理人は試された場合の結果についてはなんら責任を負うことは有りません。

コメント

スポンサーリンク