Wordpress Tag Cloud Widget - проблема с несколькими экземплярами - PullRequest
0 голосов
/ 19 октября 2018

Я зарегистрировал новый тип записи с пользовательской таксономией на своем WP, поэтому теперь у меня есть два типа сообщений ( defaultpt & custompt ) и две таксономии тегов ( defaulttax & customtax ).

Я хочу вставить два экземпляра собственного Виджета облака тегов на мой сайт:

  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' );    

Теперь, наОба моих экземпляра виджета облака тегов отображают теги правильным образом , но только из defaulttax .Настройка виджета «Таксономия» администратора игнорируется .

Добавление параметра:

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

заставляет оба виджета отображать теги из обоихтаксономии .

Добавление:

     'taxonomy' => ''

приводит к сбою виджетов.

Этот фильтр должен использовать набор таксономии в настройках виджета, но после большого количества поисков в Интернете я не смог найти никакого решения.

Итак, мой вопрос: как передать значение фильтра "выбранная таксономия в виджете" в этот фильтр ?

1 Ответ

0 голосов
/ 19 октября 2018

Просто добавьте параметр, где вы зарегистрировали пользовательскую таксономию

'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' );    
...