Отключение страницы вложения в WordPress

WordPress по умолчанию создаёт страницы для каждого вложения, существующего на сайте, будь то изображение, аудио или видеозапись. Этот функционал полезен для фотографов, но совершенно бесполезен для нас программистов и не несёт никакой смысловой нагрузки.

Как отключить

Создайте в активной теме вашего сайта шаблон, например, для вывода вложения-изображения image.php и внутри поместите редирект на пост, к которому это вложение прикрепелено:

wp_redirect( get_permalink( $post->post_parent ), 301 );
exit;

Можно пойти дальше и повесить этот же редирект на хук template_redirect, чтобы не создавать лишних шаблонов внутри темы. Для чего в functions.php напишите:

/**
 * Редирект со страницы вложения на
 * родительский пост
 */
function mihdan_attachment_redirect() {
    global $post;
    
	if ( is_attachment() && 0 !== $post->post_parent ) {
        wp_redirect( get_permalink( $post->post_parent ), 301 );
        exit();
    }
}
add_action( 'template_redirect', 'mihdan_attachment_redirect' );

Источник: https://www.kobzarev.com/wordpress/disable-image-attachment-pages-in-wordpress/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: