エス技研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.

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

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

  関連記事

Google Code Prettifyの設定方法を解説。 Syntax Highlighterから乗換え、高速化にも最適

Google Code Prettifyでソースコードをきれいに編集する方法の解説。簡単設置とカスタマイズ設置の2つの方法を解説し、カスタマイズするポイントも解説。

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

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

Rating-Widgetは超簡単設定のWordPress口コミサイト構築プラグイン

口コミの評価点を投稿する機能に特化したプラグインで、多様なイメージの投稿方法や一覧ページ、コメントなどにも投稿機能を追加することができます。

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

Lazy Load系の処理を使い画像だけでなくiframe等表示スピードに影響があるものを総合的に対策。入れるだけで高速化するので使わない手はない!

シンタックスハイライトの5システム比較のまとめ・WordPressでも使える

シンタックスハイライト5種の比較検討のまとめ記事。WordPressで使う目的だがプラグインの比較検討ではないのでどのサイトでも導入可能。

WP-PostRatingsでWordPressに自由度が高い口コミサイトを構築

口コミの評価点を投稿する機能に特化したプラグインで、多様なイメージと投稿方法が用意されていてサイトにあったイメージを選択できます。

SyntaxHighlighterの設定、カスタマイズ方法を解説。Crayonから乗換え、高速化にも最適

SyntaxHighlighter 3の設置方法、各機能の設定方法、オプション、デフォルト設定の変更方法を解説。Crayonから乗り替えるならこれしかない。

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

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

WordPressで WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった

WPtouchを入れてモバイルテーマを「OFF」にしたら元に戻れなくなった。これは「wp_footer」の設定に問題があるからだった。

カスタムフィールド決定版!Advanced Custom Fields全項目完全解説・管理画面編

カスタムフィールドを設定する最高のプラグイン。設定できる項目を全て網羅して解説。投稿の項目だけではなく、カテゴリやユーザ情報の項目を増やすことにも使えます。