ウィジェットに設定した内容を投稿・固定ページ内に表示する-wordpress

blog

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

sakuraediter

タイトルとURLをコピーしました