Zdarza się, że mamy kategorie lub tagi, w których znajduje się jeden wpis – jedni specjaliści SEO zalecają, aby strony tagów i kategorii były zablokowane dla indeksowania przez wyszukiwarki, a inni wręcz przeciwnie.
Z doświadczenia jednak strony tagów i kategorii mają całkiem dobre pozycje w Google i fakt, czasem następuje kanibalizacja słów kluczowych (tag jest wyżej niż artykuł lub wyświetla się strona tagu zamiast artykułu).
Problem
Posiadałem kilka tagów, które miały całkiem dobre pozycje w Google i były bardzo dobrze klikalne, a przecież czytelnicy chcieli się dostać do artykułu na dany temat, a nie spisu, w którym znajduje się tylko ten jeden wpis i dopiero kliknięcie w kafelek na stronie tagu przekierowywało do treści, która ich interesowała.
Poniższy snippet rozwiązuje ten problem.
function jcz_jeden_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
}
add_action('template_redirect', 'jcz_jeden_post');
Działa bardzo prosto – Jeżeli na stronie tagu lub kategorii (strony archiwum) znajduje się tylko jeden wpis, przekierowuje do niego.
Jak dodać ten kod do WordPress?
Kod ten dodaj do motywu w pliku functions.php, najlepiej motywu potomnego lub własnej wtyczki funkcyjnej. Przed „?>” na końcu pliku (może tego fragmentu nie być i wtedy po prostu na końcu). Więcej szczegółów w artykule: Własny kod w WordPress.