web-dev-qa-db-ja.com

プラグインなしでウィジェットに特定の1ページだけを追加する方法は?

私はページをウィジェットに追加し、私のワードプレスは私のすべてのページをウィジェットに追加します。

連絡先ページをウィジェットに追加し、他のすべてのページをウィジェットから削除する必要があります。

プラグインなしでそれをする方法?

    register_sidebar( array(
    'name'          => esc_html__( 'Sidebar', 'onepress' ),
    'id'            => 'sidebar-1',
    'description'   => '',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget'  => '</aside>',
    'before_title'  => '<h2 class="widget-title">',
    'after_title'   => '</h2>',
   ) );
1
javaprogrammer

カスタムサイドバーを追加するには、次の手順に従います。

ステップ1:あなたのテーマのfunction.phpファイルにこのコードを入れてください。カスタムサイドバーとカスタムadd_actionを登録します。

function wpdocs_theme_slug_widgets_init() {
    register_sidebar( array(
        'name'          => __( 'Custom Sidebar', 'textdomain' ),
        'id'            => 'sidebar-10',
        'description'   => __( 'Widgets in this area will be shown on all posts and pages.', 'textdomain' ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
        'after_widget'  => '</li>',
        'before_title'  => '<h2 class="widgettitle">',
        'after_title'   => '</h2>',
    ) );
}
add_action( 'widgets_init', 'wpdocs_theme_slug_widgets_init' );

add_action( 'your_custom_hook_name', 'your_function_name' );
function your_function_name( $sidebar_name )
{
    is_page( 'sample-page' ) && dynamic_sidebar( 'sidebar-10' ); // your sidebar name
    remove_action( current_filter(), __FUNCTION__ );
}

ステップ2:このウィジェットを表示する場所にこのコードを配置してください

<?php do_action( 'your_custom_hook_name' ); ?>
1
Jignesh Patel