Kilka dni temu, przeglądając Google Search Console (starą wersję ;-)) dla jednej z moich stron zwróciłem uwagę, że w Google mam zindeksowane całkiem sporo stron załącznika (grafiki), z których nie korzystam, a które zawyżają mi liczbę błędów związanych z metadanymi (metatagi). Wprawdzie nie wpływa to raczej na pozycję w wyszukiwarce (SEO), to jednak postanowiłem problem rozwiązać (choć to nic osobistego, to naprawdę nie lubię tych stron załącznika ;-)).

Bez strony załącznika w WordPressie

Strona o której mowa działa na WordPressie, a więc możliwości jest całkiem sporo. Uznałem, że musi to być rozwiązanie proste i skuteczne, a zarazem najlepiej bez żadnej dodatkowej wtyczki, a już na pewno bez kobyły jaką jest np. Yoast SEO.

Dlatego postanowiłem napisać własny kod, ale tym razem nie trafił on do pliku functions.php, a do pliku „image.php” w motywie potomnym WordPressa, w którym umieściłem taki kod:

<?php 
if ( !empty( $post->post_parent ) ) {
 wp_redirect( get_permalink( $post->post_parent ), 301 );
 exit;
} else {
 wp_redirect( home_url(), 301 );
 exit;
}
?>

Wybór tego pliku (image.php) był nieprzypadkowo, bo w WordPressie to właśnie ten plik odpowiada za wyświetlanie strony załącznika, i to „jego robotę” chciałem wykonać „po swojemu”:

Po wywołaniu adresu strony załącznika zamiast standardowego pliku image.php wykonuje się mój, który najpierw sprawdza, czy konkretna grafika ma rodzica, czyli post, do którego jest przypisana (wstawiona do treści). Jeśli rodzic istnieje, to następuje przekierowanie na adres URL rodzica (post). W innym przypadku – gdy grafika nie jest przypisana do żadnego artykułu – wywołanie adresu strony załącznika dla niej powoduje przekierowanie na stronę główną.

(!) Zgłoś błąd na stronie