web-dev-qa-db-ja.com

動的サイドバーに何も表示されない

私はカスタムサイドバーを作り、色でフィルタを表示するために中にYITH WooCommerce Ajax製品フィルタウィジェットを置いた。私は以下の手順を実行しました。

  1. 私のfunctions.phpに私はこのようにサイドバーを登録しました:

     add_action( 'widgets_init', 'my_register_sidebars' );
        function my_register_sidebars() {
        /* Register the 'primary' sidebar. */
        register_sidebar(
            array(
                'id'            => 'primary',
                'name'          => __( 'Primary Sidebar' ),
                'description'   => __( 'A short description of the sidebar.' ),
                'before_widget' => '<div id="%1$s" class="widget %2$s">',
                'after_widget'  => '</div>',
                'before_title'  => '<h3 class="widget-title">',
                'after_title'   => '</h3>',
            )
        );
    
    }
    
  2. Sidebar-primary.phpをこのようにしました。

    <div id="sidebar-primary" class="sidebar">
    <?php dynamic_sidebar( 'primary'); ?></div>
    
  3. サイドバーにウィジェットを追加

  4. サイドバーの内容を表示する必要があるページには、次のようにsidebar-primary.phpを含めました。

    <?php include('sidebar-primary.php'); ?>

しかし何も見せていない。助言がありますか?気付かないうちに何か悪いことをしているのかもしれません。ありがとう。

2
Nancy

Functions.phpファイルで、このような機能を追加せずにサイドバーを登録してみてください

register_sidebar(array(    //try not to enclose this in function
'id'            => 'primary',
        'name'          => 'Primary Sidebar',
        'description'   => 'A short description of the sidebar.',
        'before_widget' => '<div id="%1$s" class="widget %2$s">',
        'after_widget'  => '</div>',
        'before_title'  => '<h3 class="widget-title">',
        'after_title'   => '</h3>',
));

そしてこのようにページに電話をかけます

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

そしてあなたのsidebar-primary.phpの中で、私はあなたがdivを閉じたと思います。あなたのコードでは、このファイルの閉じたdivを表示していません。

_アップデート_

上記の方法を試して、functions.phpからsidebarのID nameを変更してくださいIDとsidebar phpファイル(sidebar_primary.php)に同じ名前を使うことはできません。

そのため、ID名をfunctions.phpファイルとsidebar_primary.phpから変更する必要があります。好き

<?php dynamic_sidebar( 'primary'); ?></div>

上記のコードでprimaryはidであり、名前を変更する必要があります。

2
Rishabh