WordPressのテーマSTINGER7で「NEW POST」をウィジェットとしてサイドバーに追加する簡単な方法
2016/09/12
WordPressのテーマに「STINGER7」という素敵テーマを利用させて頂いてるんですが、このテーマのサイドバーに「NEW POST」という新規投稿の一覧を表示する機能が付いてまして。
きのうの記事で、その「NEW POST」を消す方法をご紹介しましたが。
きっと「消したいんじゃなくて、他のウィジェットと同様に場所を移動したいんだよん」という希望もあることでしょう。
それで、この記事では元の「NEW POST」を消した後で、改めて新しいウィジェットとして「NEW POST」を作る方法をご紹介します。
とりあえず元の「NEW POST」は、きのうの記事の方法で消しといてください。
「NEW POST」のウィジェットを作るためのショートコードを作成
WordPressにはショートコードという便利なものがありまして、これは投稿内容などの中でPHPの機能をマクロ的に利用できるようにするための仕組みなんですね。
今回はそのショートコードを使って、「NEW POST」をウィジェット化してみます。
まずは管理画面のメニューから「外観」の「テーマの編集」ページを開きまして、右のテンプレート一覧から「テーマのための関数(function.php)」を見つけてクリックします。
そしてテキストエリアに表示されたコードの一番下に、以下のコードを追加してやってください。
add_filter('widget_text', 'do_shortcode' );
function get_new_posts() {
if (!is_home()) {
get_template_part('newpost');
}
}
add_shortcode('new_posts', 'get_new_posts');
このコードの一番上の青字のところは、ショートコードをウィジェットの中で使用できるようにするための“おまじない”だと思ってください。
その下の“function”で定義された関数が、「NEW POST」を表示するための記述です。
中でif文を使って条件を指定しているのは、トップページで新着記事一覧を表示している場合は「NEW POST」のウィジェットを表示しないようにするためのものです。
一番下の黄字の1行で、この関数を「new_posts」という名前のショートコードとして使用できるようにしています。
「NEW POST」のウィジェットを作る
次は、上で作ったショートコードを使って「NEW POST」のウィジェットを作ります。
管理画面のメニューから「外観」の「ウィジェット」ページを開きまして、左の「利用できるウィジェット」の中から「テキスト」を選んで「サイドバーウィジェット」のエリアへドラッグ&ドロップします。
そして、その「内容」に以下のように記述します。
[[new_posts]]
「タイトル」のほうには、何も記述しないように。
できたら“保存”ボタンをクリックして完成なので、実際にサイドバーに「NEW POST」が表示されているかどうか確認してみてください。
これで他のウィジェットと同様に、「NEW POST」を好きな場所に移動できるようになりましたね。
まとめ
今回は、ショートコードという便利な仕組みを使ってウィジェットを作ってみました。
この方法は、他のウィジェットを作りたいときにも利用できると思いますので、興味がわいた方はいろいろやってみると面白いかと。
それでは、素敵なSTINGERライフを!