如何将所有WordPress小部件限制为给定的类别?
如何将所有WordPress小部件限制为给定的类别?例如,在我的侧边栏上有一个弹出列表框,让我选择一个鸟类类别,并且侧边栏上的所有小部件数据都与给定的鸟类类别保持一致。我想我需要一种带有add_filter()的过滤器,但我不了解这个过程。这上面的文档是不完整的。我对使用查询过滤器感到非常紧张,因为它对WordPress的SQL API来说太原生了,因此有可能在WordPress的未来版本中被破坏——特别是在这个StackOverflow答案出现的时候,WordPress 3.0版本很快就会发布,并且可能会引入一些戏剧性的变化 修复的重点是完全替换小部件内容。下面是一个例子:如何将所有WordPress小部件限制为给定的类别?,wordpress,widget,categories,add-filter,Wordpress,Widget,Categories,Add Filter,如何将所有WordPress小部件限制为给定的类别?例如,在我的侧边栏上有一个弹出列表框,让我选择一个鸟类类别,并且侧边栏上的所有小部件数据都与给定的鸟类类别保持一致。我想我需要一种带有add_filter()的过滤器,但我不了解这个过程。这上面的文档是不完整的。我对使用查询过滤器感到非常紧张,因为它对WordPress的SQL API来说太原生了,因此有可能在WordPress的未来版本中被破坏——特别是在这个StackOverflow答案出现的时候,WordPress 3.0版本很快就会发布
<?php
add_filter('dynamic_sidebar_params','filterWidget');
function filterWidget($args) {
switch($args[0]['widget_name']) {
case 'Meta':
case 'Categories':
case 'Pages':
return 0; //hide widget output
break;
case 'Links':
//display new widget replacement output
echo '<li class="widget"><h2 class="widgettitle">Links</h2>Hello world</li>';
return 0; //hide previous widget output
break;
default:
//echo "<br /><br />";
//print_r($args);
//echo "<br /><br />";
return $args;
} //end switch
}
我在sidebar.php中发现,我可以使用add_filter('query','myQueryCallback')调用回调函数并操作小部件使用的查询。这看起来是在类别中映射的唯一方法,但很难,因为它需要了解如何针对帖子、评论、链接等对类别进行术语和分类联接。