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「チェック無し」がエラーが少ないのでは無いかと思います。