显示最新帖子,无301重定向

时间:2012-02-06 作者:Amino

我的WordPress网站现在通过添加以下功能重定向到最新帖子function.php

add_action( \'template_redirect\', \'redirect\' );
function redirect() {
    $args = array(
    \'numberposts\' => 1,
    \'post_type\' => \'seller\',
    \'post_status\' => \'publish\');
    $last = wp_get_recent_posts($args);
$last_id = $last[\'0\'][\'ID\'];
        if ( is_home() && ! is_paged() && ! is_archive() && ! is_tag() && !isset($_GET[\'ptype\'])  ) :
             wp_redirect( get_permalink($last_id) , 301 ); 

                exit;
        endif;
}
现在,我想要这个功能,但不改变URL到最新的帖子!我是说当你去http://www.example.com 最新帖子显示without a 301 redirecthttp://www.example.com/article/some-other-texts

2 个回复
最合适的回答,由SO网友:Brooke. 整理而成

Custom query loopscustom page templates 是你的朋友。

放弃重定向功能,在主页模板上执行以下操作:

<?php
$args = array(
    \'post_status\' => \'publish\',
    \'post_type\' => \'seller\',
    \'posts_per_page\' => 1
);

query_posts( $args );

// the Loop
while (have_posts()) : the_post();
    the_content(  );
endwhile;
?>
你可以找到all args here

SO网友:chrisguitarguy

你可以加入parse_query 并修改主页的wp\\u查询对象。

首先,钩入parse_query, 挂钩函数将获得wp_query 对象,因为它是唯一的参数。这是一个参考,所以您可以在适当的位置更改它。无需返回值。

在函数内部,您可以检查它是否是主查询(使用新的is_main_query 函数),如果是主页。从那里,更改查询变量!

<?php
add_filter( \'parse_query\', \'wpse41420_one_post\' );
function wpse41420_one_post( $query )
{
    // make sure we\'re modifying the main query on the home page
    if( ! $query->is_main_query() || ! is_home() ) return;

    // Set up one post per page
    $query->query_vars[\'posts_per_page\'] = 1;

    // ignore stick posts
    $query->query_vars[\'ignore_sticky_posts\'] = 1;
}
作为plugin.

结束

相关推荐

强制ategory-slug.php显示页面,即使它不存在

我在类别slug中有一个自定义查询。php,除非类别本身没有那么多的页面,否则它工作得很好。如果类别只有5页帖子,但我输入的查询有7页,那么第6页和第7页将显示404。很肯定,这是因为这类鼻涕虫。php在访问我在文件中的查询之前,检查是否有该类别的页面。我有没有办法强迫它运行页面而不是显示404?