0

WordPress (バージョン 3.3.2) でテーマをデザインしようとしていますが、特定のページでサイドバーに別のセットのウィジェットを表示する際にいくつか問題があります。

私はいくつかのオンラインチュートリアルを試しましたが、特にこれはhttp://www.rvoodoo.com/projects/wordpress/wordpress-tip-different-sidebars-on-different-pages/ですが、残念ながらサイドバーに変更はありません別のページに移動

以下に示すように、 functions.phpに 2 つのサイドバーを登録しました。1 つはメインと見なし、もう 1 つはカスタム サイドバーと見なします。また、これらのサイドバーにさまざまなウィジェットを追加しました。

<?php register_sidebar( //register sidebar
    array(
        'name' => 'Right-side',
        'before_widget' => '<div class="rightwidget">',
        'after_widget' => '</div>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
        ));


        register_sidebar( //register second sidebar
    array(
        'name' => 'Second-right',
        'before_widget' => '<div class="rightwidget">',
        'after_widget' => '</div>',
        'before_title' => '<h3 class="widgettitle">',
        'after_title' => '</h3>',
        ));

?>

それに続いて、ファイルsidebar.phpsidebar-second.phpを作成して、それらを呼び出せるようにしました。

サイドバー.php

<div id="sidebar">
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Right-side')) : ?>
        <h3 class="widget-title">No widget added</h3>
        <p> Please add some widgets</p>

    <?php endif; ?>
    </div><!--ends sidebar-->

sidebar-second.php

 <div id="sidebar">
    <?php if (!function_exists('dynamic_sidebar') || !dynamic_sidebar('Second-right')) : ?>
        <h3 class="widget-title">No widget added</h3>
        <p> Please add some widgets</p>

    <?php endif; ?>
    </div><!--ends sidebar-->

そして、<?php get_sidebar() ; ?>ステートメントを次の条件付きで置き換えることを追加しました

<?php if( is_page('225') ) : ?>
<?php dynamic_sidebar('second'); ?>
<?php else : ?>
<?php get_sidebar() ; ?>
<?php endif ; ?>

ただし、sidebar.phpに追加されたウィジェットのみがすべてのページに表示されます。これを変更する方法についてのヘルプ、または私が間違っている可能性があることについての指針。ありがとう。

4

3 に答える 3

1

<?php dynamic_sidebar('second'); ?>私はあなたが使用すべき場所を使用しているように見えます<?php get-sidebar('second'); ?>

get_sidebar('foo') が行うことは、テーマのルート ディレクトリで「sidebar-foo.php」という名前のファイルを探して、それをインクルードすることです。一方、dynamic_sidebar('bar') は、次のように登録されたサイドバーを探します。

<?php register_sidebar( array( 'name' => 'bar' ... ) ) ?>

お役に立てれば!

于 2012-06-15T19:30:58.057 に答える
1

カスタム サイドバー プラグインを使用しないのはなぜですか?

本当に使いやすく、コーディングは必要ありません

于 2012-06-15T21:25:22.827 に答える
0

2 つのサイドバーがあります。呼び出す代わりに、特定のページで sidebar-second ファイルを使用する場合

<?php get_sidebar('second') ; ?> 

試す

<?php get_sidebar('sidebar-second.php') ; ?>

これでうまくいくはずです

于 2015-06-27T09:57:41.327 に答える