2

WordPress でこのコードを使用して、カスタムの動的サイドバーを追加しました

register_sidebar
(array(
'name' => __( 'My widget' ),
'id' => 'right-sidebar',
'description' => __( 'Widgets in this area will be shown on the right-hand side.' ),
'before_title' => '<h1>',
'after_title' => '</h1>'
));

これで、WordPress 管理画面のダッシュボード -> 外観 -> ウィジェットから、この動的サイドバーを確認できます。

テーマを有効にすると、デフォルトではこの動的サイドバーにはコンテンツが表示されません。ウィジェット (最近の投稿、ページ、カテゴリなど) を表示するには、それらを My Widget 動的サイドバーにドラッグする必要があります。

しかし、Twenty Ten や Twenty Eleven の動的サイドバーと同様に、デフォルトで My Widget 動的サイドバーに 3 つのウィジェット (Recent Posts、Pages、Category) を表示したい。

4

3 に答える 3

2

dynamic_sidebar()これは、 と を使用して行うのはかなり簡単ですthe_widget()

これは、動的サイドバーにウィジェットが追加されていない場合に、デフォルトのコンテンツを表示するための構造です:

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    // default content goes here
}
?>

したがって、特定のウィジェットをデフォルト コンテンツとして出力するには、単に を呼び出しますthe_widget($widget, $instance, $args)。たとえば、「最近の投稿」ウィジェットを表示するには:

<?php
if ( ! dynamic_sidebar( 'My_Widget' ) ) {
    the_widget( 'WP_Widget_Recent_Posts' );
}
?>

(追加の使用例、および各ウィジェットの$instance/値については、リンクされた Codex リファレンスを参照してください。)$args

于 2012-04-18T16:39:41.573 に答える
1

これは通常の動作です。テーマでこのサイドバーのデフォルト コンテンツを設定する必要があります。Twentyeleven/sidebar.php を見てください。同じことができます:

<?php if ( ! dynamic_sidebar( 'right-sidebar' ) ) : ?>
  Default content
<?php endif; ?>

誤解しないでください。サイドバーはウィジェットではなく、ウィジェット領域です。

于 2012-04-18T08:10:07.480 に答える
0

それは可能ですが、自動アクティブ化に関してはそうではありません。必要なウィジェット (サイドバーと仮定) サイドバーが本当にウィジェット対応であり、管理者が新しいサイドバー ウィジェットをラインナップに追加すると、管理者が指定した設定を使用するように自動的に切り替わります。

はい、デフォルトで実行できます。自動アクティブではありません...

詳細についてはhttps://stackoverflow.com/a/3057665/716492

于 2012-04-18T06:45:29.563 に答える