WordPress标签云小部件-多个实例参数问题

时间:2018-10-19 07:19:06

标签: php wordpress tags widget cloud

我已经在WP上注册了具有自定义分类法的新帖子类型,因此现在我有两种帖子类型( defaultpt custompt )和两种标签分类法(默认税自定义税)。

我想在我的网站上插入两个本机 Tag Cloud Widget 实例:

  1. 放置在单个 defaultpt 帖子小部件区域上的标签云显示来自 defaulttax 的标签。

  2. 放置在页脚小部件区域(与整个网站相同)中的标签云显示来自 customtax 的标签。

当我将标签云小部件放置在适当的小部件区域并选择所需的分类法时,它会根据需要正确显示标签。但是,标签云是使用默认参数(排序,顺序等)创建的,我想对其进行更改。这两个标签云实例应以相同方式显示标签。

因此,我在widget_tag_cloud_args中添加了一个functions.php过滤器:

function all_tag_cloud_widget_params() {

$args = array(
    'smallest' => 10, 
    'largest' => 10, 
    'unit' => 'pt', 
    'number' => 40,
    'format' => 'flat', 
    'separator' => "\n", 
    'orderby' => 'count', 
    'order' => 'DESC'
);
return $args;
}
add_filter( 'widget_tag_cloud_args', 'all_tag_cloud_widget_params' );    

现在,在我的两个标签云小部件实例上,以正确的方式显示标签,但只能使用默认税。管理员“分类”小部件设置被忽略

添加参数:

    'taxonomy' => array( 'defaulttax', 'customtax' )

强制两个小部件显示两个分类法中的标签

添加:

     'taxonomy' => ''

破解小部件。

此过滤器应使用小部件设置中的分类法设置,但经过大量的网络搜索后,我找不到任何解决方案。

所以,我的问题是:如何将“窗口内选定分类法”变量值传递给此过滤器

1 个答案:

答案 0 :(得分:0)

只需在您注册了自定义分类法的位置添加参数

'show_tagcloud' => true

检查编解码器:https://codex.wordpress.org/Function_Reference/register_taxonomy

您还可以在过滤器中为变更单参数添加条件。

function all_tag_cloud_widget_params( $args ) {
   if( !in_array($args['taxonomy'], array('defaulttax', 'customtax')) )  {
      return;
   }
   $args2 = array( ... );
   return $args2;
}
add_filter( 'widget_tag_cloud_args', 'all_tag_cloud_widget_params' );