カテゴリリンクを最初の子投稿にリダイレクトしようとしています。私はcategory.php
で以下のコードを使用しています。これはリダイレクトされますが、リンクは最初の子投稿には行きません。 ASCの日付順で最初の子投稿にリダイレクトするにはどうすればよいですか
/*
Category Template:
Template URI:
Description:
*/
if ( have_posts() ) :
while ( have_posts() ) : the_post();
wp_redirect( get_permalink( $post->ID ) );
endwhile;
endif;
リダイレクトするページロードシーケンスが遅すぎます。ヘッダがブラウザに送信される前にリダイレクトする必要があります。 template_redirect
フックはかなり良いオプションです。
function redirect_cat_wpse_207298() {
if (is_category()) {
global $post;
wp_safe_redirect(get_permalink($post->ID));
die;
}
}
add_action('template_redirect','redirect_cat_wpse_207298');
get_posts()
を使って、探しているものやリダイレクトしたい場所を絞り込むことができます。
get_posts()
とそのパラメータの一般的な使い方については Codexを参照してください そしてあなたのリダイレクトにこれを使うことができます(テストされていません。
<?php
$args = array('posts_per_page' => 1);
$postslist = get_posts($args);
foreach ($postslist as $post) :
setup_postdata($post);
wp_redirect(the_permalink());
endforeach;
wp_reset_postdata();
?>