2015-01-09 2 views
0

Я пытаюсь изменить свой tag.php внутри Wordpress. В принципе, у меня в моем общем цикле установлено по умолчанию пять сообщений на страницу. Когда пользователи нажимают на тег из облака тегов, я бы хотел, чтобы он отображал все соответствующие результаты по названию. Вот что я имею в tag.php:Добавить результаты в поиск тегов Wordpress

<p>Tag: <?php single_tag_title(); ?></p> 

<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
        <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> 


        <?php endwhile; endif; ?> 

Это работает отлично, однако оно возвращает только количество по умолчанию, равное пяти. Когда я пытаюсь добавить wp_query, используя ('posts_per_page' => 1000) перед циклом, он возвращает все мои сайты, а не только для соответствующего тега. Как добавить больше результатов? Благодаря!

ответ

0

вместо редактирования PHP файл всякий раз, когда вы пытаетесь что-то изменить с помощью WordPress, вы можете изменить практически все, используя functions.php в зависимости от того, как закодировать тему,

ЗАКАНЧИВАТЬ post_limits фильтр http://codex.wordpress.org/Plugin_API/Filter_Reference/post_limits

или pre_get_posts http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts

вы можете ограничить результаты с использованием вышеуказанных фильтров,

например pre_get_posts

function cmk_custom_result($wp_query) { 
    $post_type = $wp_query->query['post_type']; 
    if ($post_type == 'your-post-type' && is_tag()) { 
     $wp_query->set('posts_per_page', '25'); 
    } 
} 
add_filter('pre_get_posts', 'cmk_custom_result'); 

post_limist

function cmk_post_result_limits($limit, $query) { 
    if (!is_admin() && $query->is_main_query() && is_tag()) { 
     return 'LIMIT 0, 25'; 
    } 
    return $limit; 
} 
add_filter('post_limits', 'cmk_post_result_limits', 10, 2); 
1

Большое спасибо за ответ SilverKenn, я ценю это. Тогда я смог разобраться с этим.

<?php $args = array('post_type' => 'post', 'posts_per_page' => -1, 'tag'=> get_query_var('tag')); 
    $loop = new WP_Query($args); 
    while ($loop->have_posts()) : $loop->the_post(); ?> 
    <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> 
0

Используйте get_query_var, чтобы получить правильный тег, например: 'tag'=> get_query_var('tag') затем использовать -1 в сообщениях массив для «posts_per_page», чтобы получить неограниченное количество сообщений для этого тега, в противном случае измените номер все, что вы хотите ограничить вывод.

   <?php $args = array('post_type' => 'post', 'posts_per_page' => -1, 'tag'=> get_query_var('tag')); 
      $loop = new WP_Query($args); 
      while ($loop->have_posts()) : $loop->the_post(); ?> 
       <p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p> 


       <?php endwhile; ?> 
Смежные вопросы