Mostrando a última postagem sem redirecionamento 301

O meu site WordPress agora é redirecionado para a última postagem, adicionando abaixo function para 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; } 

Agora, eu quero esse recurso, mas sem alterar o URL para a última postagem! Quero dizer, quando você vai para http://www.example.com últimas postagens mostra sem um redirecionamento 301 para http://www.example.com/article/some-other-texts

Solutions Collecting From Web of "Mostrando a última postagem sem redirecionamento 301"

Loops de consulta personalizados e modelos de página personalizados são seus amigos.

Abaixe a function de redirecionamento e no modelo da página inicial faça algo como isto:

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

Você pode encontrar todos os args aqui

Você pode se conectar à parse_query e modificar o object wp_query para a página inicial.

Primeiro, conecte-se a parse_query , sua function wp_query obterá o object wp_query como sendo apenas um argumento. É uma referência, então você pode mudá-la no lugar. Não é necessário um valor de retorno.

Dentro de sua function, você pode verificar se é a consulta principal (usando a nova function is_main_query ) e se for a página inicial. A partir daí, altere as variables ​​de consulta!

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

Como um plugin .