エス技研WordPress専科

WordPressの基本的な使い方から SEOの対応、プラグイン情報、カスタマイズ方法を解説します。


ショートコードで簡単解決!WordPress固定ページにカテゴリ一覧を編集する方法

      2015/12/27

プラグインなしでカテゴリ一覧を作成

 

ショートコードでカテゴリ一覧を作成

 
WordPressをブログとして使う分には関数を作って、ショートコードを作成して、といったことが発生する機会はほぼないワケですが、ブログじゃない見せ方のサイトを作ろうかなぁと思った時にはショートコードは非常に強い味方となってくれる仕組みなのです。
 
というわけで、今回は、ショートコードを利用して、固定ページや特定の投稿に特定のカテゴリの投稿一覧を作成する処理を作ってみましたので、解説しようと思います。
 
 
ショートコードの記載の方法については、「WordPress投稿にPHPを記述するショートコードの使い方add_shortcode」に記事を書いていますので、参考にしてみてください。
 
また、上記の記事内でショートコードをテンプレート内で実装する方法も記載しています。
一度ショートコードを作っておけば、記事内だけではなくてテンプレート内でも使えますので、覚えておいて損はない仕組みですね。
 
 
ただ、そのままではウィジェットでは使えませんので、ウィジェットにも編集したいという場合には「WordPressのウィジェットでショートコードを使う方法add_filter」の記事を読んでみてください。
ちょっとした処理を追加することで対応できるようになります。
 
 

カテゴリ一覧を編集するソース

 
対応する内容は、「functions.php」にプログラムを記述し、それを呼び出すショートコードを固定ページや投稿に記述する、という内容になります。
 
 

functions.phpに関数を追加

 
functions.phpに下記のソースを記載します。
 

 
 
「functions.phpって何?」っていう方には「WordPressの functions.phpがある場所」という記事を書いていますので、こちらも読んでみてください。
 
 

記事に記載するショートコード

 
実際にカテゴリ一覧を編集する場合には、投稿に下記のソースコードを記載します。
 

 
「category」は、カテゴリの IDになります。表示したいカテゴリを編集します。
「posts_per_page」は、表示する件数を編集します。
 
この仕組みではページ送りの処理は含まれていませんので、「最新 5件」を表示するといった想定になっています。
 
また、「posts_per_page => -1」の様に「-1」を指定すると、1ページの表示制限をなくすことができます(全件表示になります)。
 
 


 

カテゴリ一覧を編集するソースの解説

 
ショートコードの基本的な理解は最初にも書きましたが、「WordPress投稿にPHPを記述するショートコードの使い方add_shortcode」に記載していますので、そちらを読んでください。
 
ショートコードで、「Category_List」という関数を呼び出します。
引数として、「category」「posts_per_page」を受け取ります。
引数がない場合は、「category => 1(未分類)」、「posts_per_page => 5」(5件表示)がデフォルト値として設定されます。
 
7行目の「get_posts()」で、引数で受け取ったカテゴリから件数分の記事を取得します。
それを、12行目の「Create_Html関数」に送って HTMLを生成します。
 
決まりきった HTMLを生成できればいいのならば、「Create_Html関数」は関数化する必要はないのですが、カテゴリごとに編集する HTMLを変えたい場合には、下記のような感じで「Create_Html関数」を分けておく方が便利なんじゃないかな、ということで関数を分けています。
 

 
まぁ、ショートコードの引数に HTMLの区分を追加して、その区分で「Create_Html関数」を振り分けるようにしておく方が使い勝手はよさそうですね。
 
 
また、投稿から取得する値として、「タイトル」を「$post->post_title」として取得していますが、同様にいろいろな値が取得可能です。
下記のサイトが参考になりましたので、併せて紹介しておきます。
 http://weble.org/2012/04/23/wordpress-post-data
 
 

「query_posts」ではなく「get_posts」関数を使おう

 
最初に参考にしたサイトでは、投稿情報を取得する際に「query_posts」が使われていました。
 
ですが、下記の様に「query_posts」関数は推奨されていない関数ですので、「get_posts」関数を使いましょう。
 http://notnil-creative.com/blog/archives/1688
 
実際に「query_posts」のままでは想定した動きになりませんでしたからね。
 
 
この記事では一覧表示をすることを主眼に解説しましたが、カスタムフィールドも利用した抽出条件、ソート条件を設定する方法を含めた解説記事を「ショートコードで簡単解決!カスタムフィールドでソート、抽出条件設定方法」に書きましたのであわせて参考にしてください。
(2015.05.25 追記)

 - WordPressのプラグイン

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload the CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

カテゴリ・タクソノミーのタームの順番を自由に並び替えるプラグイン・Category Order and Taxonomy Terms Order

標準機能では行えないカテゴリやタクソノミーの並び替えを行うプラグインCategory Order and Taxonomy Terms Orderの紹介です。

カスタム投稿をCustom Post Type UIで設定し編集する方法解説

カスタム投稿を追加、管理するプラグインCustom Post Type UIの使い方の解説です。プラグインの解説ではあるものの、カスタム投稿の仕様の解説でもあります。

WordPressのおすすめの確認画面付きお問い合わせフォームプラグイン・MW WP Form

MW WP Formは確認画面が付いているオススメのフォームプラグインです。企業サイトを CMSとして構築する際にも利用できる実力派です。

WP Reviewを使ってWordPressのレビューサイトを構築

レビューサイトを構築するプラグインです。複数の評価者による評価点投稿やページごとに配色を変更する機能、機能満載なウィジェットなどレビューサイト構築に最適です。

SEO効果絶大!PVもアップするWordPressの高速化プラグインUnveil Lazy Load

WordPressの表示を高速化するUnveil Lazy Loadの紹介。利用するJSを見直し高速化を徹底的に追求したプラグイン。入れるだけで高速化するので使わない手はない!

SEO効果絶大!PVもアップするWordPressの高速化プラグイン元祖Lazy Load

Lazy Loadは、画像を最初にまとめて読み込むことで発生するスピードの遅延を防ぎ、必要な画像から順番に読み込むことでページの表示スピードを向上させるプラグインです。

DuplicatorでWordPressを簡単引越し!インストーラー付のバックアップにも

WordPressの引越しや開発環境から本番環境への移行など他の環境に移す作業を簡単にしてくれるプラグインの紹介。インストーラー付のバックアップツールとしても使る。

EWWW Image Optimizerで画像の圧縮でWordPressを高速化

ページ表示の高速化に使うEWWW Image Optimizerの紹介です。英語で書かれているために取っつきにくいですが設定は3カ所。画像の圧縮もワンクリック。超簡単!

評価点投票プラグイン10個を比較!WordPressで口コミサイトを構築

口コミサイトを作るために必要な評価点、レビューを投稿できるプラグインを探して評価。10プラグインをチェックし、8プラグインは詳細解説付き。

Advanced Custom Fields(ACF)のアドオン・繰り返しフィールドの使い方解説

Advanced Custom Fieldsのアドオン・繰り返しフィールドについて解説。繰り返しフィールドは投稿者が入力フィールドを追加しながら情報を入力できるフィールドを提供。