如何在没有插件的情况下只向Widget添加一个特定的页面?

时间:2018-06-14 作者:javaprogrammer

我将页面添加到小部件中,wordpress将所有页面添加到小部件中。

我想将just contact页面添加到小部件,并从小部件中删除所有其他页面。

没有插件怎么做?

    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 个回复
SO网友:Jignesh Patel

只需按此步骤操作一页添加自定义侧栏

Step 1: 将此代码放入主题函数中。php文件。注册自定义侧栏和自定义add\\u操作。

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__ );
}
Step 2: 将此代码放在显示此小部件的位置

<?php do_action( \'your_custom_hook_name\' ); ?>

结束