Как получить ссылку на подкатегорию пользовательских сообщений


Я пытаюсь повторить ссылку на подкатегорию пользовательских сообщений в качестве дополнительной опции.Всю последнюю неделю я пытаюсь это сделать, но просто не могу найти правильный путь. Я пробовал, ссылки на категории, термины, с аргументами, идентификатором..все, что я мог придумать или найти здесь. В настоящее время единственный способ показать это с помощью идентификатора, но здесь мне придется добавить номер, а это не тот вариант, который я хочу. Так что позвольте мне дать вам больше информации.

Сначала я создал пользовательские записи (обратите внимание, что я удалил некоторые параметры здесь потому что они не нужны, поэтому, чтобы сделать его короче)

 
$args = array(       
        'taxonomies' => array( 'category', 'post_tag', 'fixture' ),
        'public' => true,
        'show_in_menu' => true,
        'publicly_queryable' => true,
        'has_archive' => true,
        'query_var' => true,
        'rewrite' => true,
        'query_var' => true,
        'capability_type' => 'post'
    );
register_taxonomy(
    'fixs_cat',
    'match',
    array(
      'label' => __( 'Fixture Categories', 'ko-text' ),
      'rewrite' => array( 'slug' => 'fixture' ),
      'hierarchical' => true,
      'query_var' => true
    )
  );
register_post_type( 'match', $args );
}
 

Затем я создал виджет, который будет отображать их. Это виджет с вкладками, поэтому я не буду добавлять все параметры вкладок, потому что все они одинаковы, меняется только число от 1 до 10.

 
public function widget( $args, $instance )
/* Widget variables. */
        $fix_name1 = $instance['fix_name1'];
        $fix_cat1 = $instance['fix_cat1'];
        $fix_num1 = $instance['fix_num1'];

        $fix_name2 = $instance['fix_name2'];
        $fix_cat2 = $instance['fix_cat2'];
        $fix_num2 = $instance['fix_num2'];

 

public function form( $instance ) {
TODO: Define default values for your variables
$defaults = array( 
'sort' => 'latest', 
'$fix_name1' => 10, 
'$fix_name2' => 10, 
        );
        $instance = wp_parse_args(
            (array) $instance
        );

Затем в настройках виджета я сделал опцию, чтобы пользователь мог выбрать заголовок, категорию и количество сообщений, которые он хочет показать, из выбранной пользовательской категории сообщений. Не могу опубликовать это здесь, не нарушив его, поэтому здесь http://pastebin.com/hjpdrdnA

И последнее - это фактический цикл, который отображает эти сообщения в виджете

 
if($fix_name1) { ?>
 'match', 
'posts_per_page' => $fix_num1, 
'tax_query' => array(
 array( 'taxonomy' => 'fixs_cat',
 'field' => 'slug',
  'terms' => $fix_cat1 ))
  )); while($recent->have_posts()) : $recent->the_post();?>     
//Stuff to display
 
 } ?>

Для примера в этом коде со ссылкой на термин перечислены все категории, но я хочу только ту, которая выбрана в разделе tab1 и находится здесь $fix_name1

Http://codex.wordpress.org/Function_Reference/get_term_link - здесь для терминов я добавил общую категорию, такую как get_terms('fixs_cat')

//Что-то короткое вроде этого echo $fix_cat1; отображает необходимую категорию, но в ссылке отсутствует основная пользовательская категория публикации, она должна быть выбрана как "приспособление/категория", и это показывает только /выбранную категорию.

//это делает то же самое из того же примера кода {[4]}

Есть идеи, как это решить?

Author: Max, 2016-02-06

1 answers

Это лучшее, что я мог сделать. Это дает то, что нужно, но, как я уже сказал, он отображает категорию в URL вместо того, что должно быть "приспособлением". Тем не менее, работает нормально. term_id;//категория $category_link =get_category_link($CATID); ?> "заголовок="Название категории">Просмотреть больше

 0
Author: Max, 2016-02-11 00:29:43