Redirecionar a página para a primeira publicação no tipo de postagem personalizado

Eu tenho uma página, vamos chamá-lo de “Artistas”, que exibe uma lista de postagens em um tipo de postagem personalizado, novamente “artistas”.

Como posso redirect pepole que visita a página de artistas para a primeira postagem no tipo de publicação “artistas”?

Solutions Collecting From Web of "Redirecionar a página para a primeira publicação no tipo de postagem personalizado"

Isto é assumindo que sua página ‘Artistas’ tenha uma ID de 10, então altere isso conforme necessário.

Você também pode alterar a matriz de $args conforme desejar melhor atender às suas necessidades, se necessário. Aqui está o Codex para WP_Query , que mostra os parâmetros que você pode usar.

Finalmente, isso precisa ir diretamente no topo de sua página (antes de qualquer saída), caso contrário, você receberá um erro sobre as informações de header já foram produzidas.

 if(is_page(10)) : $args = array( 'posts_per_page' => 1, 'post_type' => 'artists' ); /** Get the posts that match and grab the URL of the first post */ $posts = get_posts($args); $redirect_url = get_permalink($posts[0]->ID); /** Redirect to the specified URL */ wp_redirect($redirect_url); exit; endif; 

Se quiser redirect uma Página específica para a primeira publicação, sugiro procurar a resposta fantástica de u / gmazzap sobre a atribuição de Modelos de Páginas como Arquivo de Post-Type .

Se você deseja redirect o Post Type Archive para a primeira postagem em vez disso, poderá usar o seguinte:

 /** * Redirect post type archive page to first post * * @return void */ function wpse91590() { if( is_post_type_archive( 'artists' ) ) { // Grab the first artist post ID and store it in an array $posts = get_posts( array( 'post_type' => 'artists', 'posts_per_page' => 1, 'fields' => 'ids', 'orderby' => array( 'menu_order' => 'ASC', 'post_date' => 'DESC' ), ) ); // If our array isn't empty, redirect if( ! empty( $posts ) ) { wp_redirect( get_permalink( $posts[0] ), 301 ); // Variable $posts[0] holds the artist post ID exit(); } } } add_action( 'template_redirect', 'wpse91590' ); 

A idéia é que não precisamos de todo o Post Object, então nós apenas agarramos a ID e redirecionamos para isso. Finalmente, saímos do script para evitar qualquer outra execução.