如何以编程方式隐藏Wordpress小部件ID

时间:2017-12-05 18:33:21

标签: php wordpress

根据特定值(appID),我想在我的wordpress博客中隐藏其中一个小部件ID。

我的小部件ID: custom_html-2 (我从启用辅助功能模式获得此值) (从这个网址我得到了widgetID:/wp-admin/widgets.php?widgets-access=on&_wpnonce=0b123456fb2&editwidget=custom_html-2&sidebar=right-sidebar&key=0

当appID的值为 in.abcd.app 时,我想隐藏 custom_html-2

我只是回显了appID ,我得到了值 in.abcd.app ,但是小部件没有被隐藏。

我打开了侧栏中的侧栏(sidebar.php)并按照下面的方式进行了修改。没锻炼 - 我是wordpress和PHP的新手

<!-- Sidebar -->
<div class="col-lg-4 col-md-4 col-sm-4">

    <aside class="sidebar">

        <?php if ( is_active_sidebar( 'right-sidebar' ) ) : ?>
        <div class="sidebar-widget">

            <?php dynamic_sidebar( 'right-sidebar' ); ?>

            <?php   
                <?php $widgets  = get_option('widget'.sidebar-widget); ?>
                $appID =  $_SERVER['HTTP_X_REQUESTED_WITH'] 
                if ($appID = 'in.abcd.app')
                {
                <?php unset($widgets['custom_html-2']); ?>
            ?>


        </div>
        <?php endif; ?>

    </aside>

</div>
<!-- /end sidebar -->

2 个答案:

答案 0 :(得分:2)

您需要在functions.php

中添加以下内容
add_filter( 'sidebars_widgets', 'unset_sidebar_widget' );

function unset_sidebar_widget( $sidebars_widgets ) {
    $appID =  $_SERVER['HTTP_X_REQUESTED_WITH'];
    if ($appID = 'in.abcd.app')
    {
        unset($sidebars_widgets['custom_html-2']); 
    }
  return $sidebars_widgets;
}

答案 1 :(得分:1)

我认为dynamic_sidebar( 'right-sidebar' );呈现侧边栏和小部件,因此如果在呈现小部件后取消设置小部件,它将不会改变任何内容。

尝试将dynamic_sidebar( 'right-sidebar' );放在未设置的部分之后。