2015-05-16 5 views
0

В настоящее время у меня есть настраиваемый тип сообщений, называемый Sectors. У этого также есть категории. SectorsОтображает теги только для определенной категории в WordPress

add_action('init', 'wpsites_custom_post_type'); 
function wpsites_custom_post_type() { 

register_post_type('sectors', 
    array(
     'labels' => array(
      'name'   => __('Sectors'), 
      'singular_name' => __('sector'), 
     ), 
     'has_archive' => true, 
     'hierarchical' => true, 
     'menu_icon' => 'dashicons-heart', 
     'public'  => true, 
     'rewrite'  => array('slug' => 'sectors', 'with_front' => false), 
     'supports'  => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'page-attributes'), 
     'taxonomies' => array('sectors', 'post_tag'), 
    )); 

} 

Здесь, у меня есть отдельные секторы, которые могут иметь метки attatched Tags

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

Используя код, приведенный ниже, на мой систематики-sectors.php странице, я могу это сделать:

<?php 
    $args = array(
     'tag_slug__and' => array('sector1'), 
     'post_type' => array('sectors') 
    ); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); 
    ?> 
    <a href="<?php echo get_permalink(); ?>"> 
    <?php echo "<div class='col-md-6' style='margin-bottom:20px;'>"; ?> 
    <div class="row mobilemargin"> 
     <div class="categorytiletextsector1"> 
     <div class="col-md-6 col-sm-6 col-xs-12 nopr"><?php echo get_the_post_thumbnail($page->ID, 'categoryimage', array('class' => 'sector1img hovereffect')); ?> </div> 
     <div class="col-md-6 col-sm-6 col-xs-12"> 
      <div class="testdiv"> 
      <h5><?php the_title(); ?></h5> 
      <p><?php the_excerpt(); ?></p> 
     </div> 
     </div> 
    </div> 
    </div> 
    <?php echo "</div>"; ?> 

</a> 

Вопрос в том, это отображает эти маркированные сектора на КАЖДОЙ странице категории, как все категории используйте страницу таксономии. Есть ли способ, чтобы он отображал только эти помеченные страницы сектора в свою собственную категорию? Никакие сектора не могут быть в 1 категории, если это помогает.

Любая помощь будет большим, это было давало мне покоя в течение нескольких дней в настоящее время :(

EDIT

код ниже от ответа, но это ничего не возвращает сейчас, там что-то не хватает? ?

$args = array(
    'tag_slug__and' => array('sector1'), 
    'post_type'  => array('sectors'), 
    'tax_query'  => array(
     array(
      'taxonomy' => 'sectors', 
      'terms' => get_queried_object_id(), 
     ), 
    ), 
); 
+0

не существует 'cat' аргумент можно использовать в' массив args' $? https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters –

+0

Я думаю, но это не так, только когда вы выбираете какую категорию вы хотите. Я имею в виду, я хочу, чтобы он выбирал для меня, поскольку я не могу сказать «Категория 4». –

ответ

-1

попробовать это один

<div class="col-md-6 col-sm-6 col-xs-12"> 
    <div class="testdiv"> 
      <h5><?php the_title(); ?></h5> 
      <p><?php the_excerpt(); ?></p> 
      <p><?php the_tags('Tags: ', ', ', '<br />'); ?></p> 
    </div> 
</div> 
+0

Извините, если это глупо, где я могу добавить это? –

+0

Кто-нибудь? Не слишком уверен, где выполнить этот код, попробовал несколько мест, но не хочу повышать, если это не работает –

+0

Это не сработает! –

0

запрос, который вы имеете в мо как вы уже нашли, будет извлекать все сообщения и не относится к термину, который вы просматриваете.

Если я правильно понял ваш вопрос, вы хотите отфильтровать сообщения, показанные термину, который вы просматриваете. Это можно сделать, получив идентификатор текущего термина, используя get_queried_object_id() и передав его в аргумент tax_query.

Изменение:

$args = array(
    'tag_slug__and' => array('sector1'), 
    'post_type' => array('sectors') 
); 

To:

$args = array(
    'tag_slug__and' => array('sector1'), 
    'post_type'  => array('sectors'), 
    'tax_query'  => array(
     array(
      'taxonomy' => 'sectors', 
      'terms' => get_queried_object_id(), 
     ), 
    ), 
); 
+0

По какой-то причине помеченный элемент нигде не отображается? –

+0

Не на любой странице категории вообще, какие-нибудь идеи? –

Смежные вопросы