Bu kod sayesinde WordPress sitesinde kategoride veya etikette yalnızca bir adet içerik var ise kullanıcıyı o etiket/kategori sayfasını göstermek yerine ilgili içeriğe yönlendirebiliyoruz. Ve bu hızın her alanda önemli olduğu çağımızda gayet mantıklı bir çözüm.
Burada amaç ziyaretçiye fazladan bir adım, gereksiz bir sayfa göstermeyi engellemek, ayrıca bu koda ek olarak arama sonuçlarında da yalnızca bir sonuç var ise ilgili yazıya yönlendirebileceğimiz kodu da paylaşacağım.
Aşağıdaki kodları temanızın function.php dosyasına yazmanız yeterlidir.
/* kategori ve etiket arşivlerinde sadece 1 yazı var ise çalışır */
function sadece_bir_yazi_var(){
global $wp_query;
// If there is one post on archive page
if( is_archive() && $wp_query->post_count == 1 ){
// Setup post data
the_post();
// Get permalink
$post_url = get_permalink();
// Redirect to post page
wp_redirect( $post_url );
}
}add_action('template_redirect', 'sadece_bir_yazi_var');
/* arama sonuçlarında sadece 1 yazı var ise çalışır */
function redirect_the_single_post(){
if (is_search() && is_main_query()){
global $wp_query;
if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1){
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
exit;
}
}
}
add_action('template_redirect', 'redirect_the_single_post' );