wordpressにおいてウィジェットは、主にサイドバーを作るとき、記事下等に広告を配置するときなどによく使われます。
そのウィジェットに設定した内容(新着記事であったり、カテゴリであったり、アーカイブであったり)を、投稿ページ・固定ページの任意の位置に表示したくなることがあります。
特に、フロントページを固定ページで作るときに、そんなことを思いました。
コード
新しくウィジェットエリアを作成します。その新しく作ったウィジェットエリアに、表示したい内容を設定します。
子テーマのfunction.phpに以下のコードを追記します。
Wordpressのfunctions.phpを編集する前は、編集前に必ずバックアップを取って保存してください。もし編集後、エラーが出るようでしたら、バックアップファイルを元に復元してください。
if ( function_exists( 'register_sidebar' ) ) { register_sidebar( array( 'id' => 'my_custom', 'name' => '投稿・固定ページ用ウィジェット', 'description' => '投稿・固定ページ用ウィジェットです。', 'before_widget' => '<div class="my_custom">', 'after_widget' => '</div>', 'before_title' => '<p>', 'after_title' => '</p>' ) ); } if ( !function_exists( 'my_custom' ) ) { function my_custom() { ob_start(); dynamic_sidebar( 'my_custom' ); $osc = ob_get_clean(); return $osc; } add_shortcode( 'mycustom', 'my_custom' ); }
*コードは他サイトのものを頂きましたが、どこのサイトだったか忘れてしまいました。
これで、新しくウィジェットエリアが作成されます。
このエリアに、ここでは「検索窓」「カテゴリ」「アーカイブ」を設定しました。
固定ページなどの任意の場所に表示する
任意の場所に表示するには、ショートコードを用います。表示したい場所にショートコード
[mycustom]
を記入することで、上で設定したウィジェットの内容が表示されます。
例えばこんな感じ → 実行ページ
wordpressの管理画面から、function.phpなどの.phpファイルを編集した場合、うまく動作しない時があります。
その際は、ftpソフトなどでいったん該当ファイルをローカルに保存して、そこで編集を行います。
編集した.phpを、ftpソフトなどで再度アップロードする事で正常動作する場合があります。
.phpを編集する際は、サクラエディタ が、エラーが少ないのではないかと思います。
上のエディタで保存する場合は、文字コード「UTF-8」、BOM「チェック無し」がエラーが少ないのでは無いかと思います。