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, 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.