将更多结果添加到Wordpress标记搜索中

时间:2015-01-09 22:15:41

标签: wordpress tags

我正在尝试修改Wordpress中的tag.php。基本上,我将我的一般循环设置为每页默认的五个帖子。当用户点击我的标签云中的标签时,我希望它按标题显示所有相关结果。这是我在tag.php中的内容:

<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; ?>

这非常有效,但它只返回默认值5。当我尝试在循环之前使用('posts_per_page'=&gt; 1000)添加wp_query时,它会返回我的所有网站帖子,而不仅仅是适当的标记。如何添加更多结果?谢谢!

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

而不是在尝试通过wordpress自定义内容时编辑php文件,您可以使用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

您可以使用上述过滤器限制结果

e.g。 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 );

答案 2 :(得分:0)

使用get_query_var获取正确的标记,例如:'tag'=> get_query_var('tag')然后在帖子数组中使用-1,以便&#39; posts_per_page&#39;获取该标签的无限数量的帖子,否则将数字更改为您想要限制输出的任何内容。

                <?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; ?>