Убираем «мусор» из WordPress

Из-за отключения тех или иных элементов WordPress может перестать работать нужный вам функционал или вообще работоспособность плагинов. Отключение всех элементов производите если вам это действительно не нужно и вы понимаете для чего это делаете.

После каждого отключения проводите проверку на работоспособность необходимых вам элементов сайта.

Добавляете данные коды в файл function.php и все. Функционал будет отключен.

Отключаем ленты RSS

Отключение всех лент rss

// Отключение rss-ленты
function fb_disable_feed() {
wp_redirect(get_option('siteurl'));
}

add_action('do_feed', 'fb_disable_feed', 1);
add_action('do_feed_rdf', 'fb_disable_feed', 1);
add_action('do_feed_rss', 'fb_disable_feed', 1);
add_action('do_feed_rss2', 'fb_disable_feed', 1);
add_action('do_feed_atom', 'fb_disable_feed', 1);

remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );
remove_action( 'wp_head', 'rsd_link' );

Выборочное отключение rss

// Удаляет ссылки RSS-лент записи и комментариев
remove_action( 'wp_head', 'feed_links', 2 ); 
// Удаляет ссылки RSS-лент категорий и архивов
remove_action( 'wp_head', 'feed_links_extra', 3 ); 

Удалить RSD ссылку (xmlrpc.php)

remove_action( 'wp_head', 'rsd_link' ); 

Удалить ссылку Windows для Live Writer (wlwmanifest)

remove_action( 'wp_head', 'wlwmanifest_link' ); 

Отключить Rest API

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

/*
 * Отключаем REST API
 */
// Отключаем сам REST API
add_filter('rest_enabled', '__return_false');

// Отключаем фильтры REST API
remove_action( 'xmlrpc_rsd_apis',            'rest_output_rsd' );
remove_action( 'wp_head',                    'rest_output_link_wp_head', 10, 0 );
remove_action( 'template_redirect',          'rest_output_link_header', 11, 0 );
remove_action( 'auth_cookie_malformed',      'rest_cookie_collect_status' );
remove_action( 'auth_cookie_expired',        'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_username',   'rest_cookie_collect_status' );
remove_action( 'auth_cookie_bad_hash',       'rest_cookie_collect_status' );
remove_action( 'auth_cookie_valid',          'rest_cookie_collect_status' );
remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );

// Отключаем события REST API
remove_action( 'init','rest_api_init' );
remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
remove_action( 'parse_request', 'rest_api_loaded' );

// Отключаем Embeds связанные с REST API
remove_action( 'rest_api_init','wp_oembed_register_route');
remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );

remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
// если собираетесь выводить вставки из других сайтов на своем, то закомментируйте след. строку.
remove_action( 'wp_head','wp_oembed_add_host_js');

Удалить короткую ссылку

remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0); 

Удалить информацию о версии WordPress

remove_action( 'wp_head', 'wp_generator' );

Удалить ссылки на предыдущую и следующую статьи

remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );

Отключить поддержку Emoji

/*
 * Отключаем Emojii
 */
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' ); 
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); 
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_wp_emojis_in_tinymce' );
function disable_wp_emojis_in_tinymce( $plugins ) {
    if ( is_array( $plugins ) ) {
        return array_diff( $plugins, array( 'wpemoji' ) );
    } else {
        return array();
    }
}

Отключить dns-prefetch

remove_action( 'wp_head', 'wp_resource_hints', 2 );

Отключить .recentcomments

function wpplugins_remove_recentcomments() {
    global $wp_widget_factory;
    remove_action( 'wp_head', array( $wp_widget_factory->widgets['WP_Widget_Recent_Comments'], 'recent_comments_style' ) );
}
add_action('widgets_init', 'wpplugins_remove_recentcomments');

Yoast

При формировании xml карты сайта, плагин yoast создаёт теги картинок image:image. Данный тег не понимает yandex и вывод данного тега нужно отключить

/**
 * Удаление картинок из xml-карты Yoast
*/
add_filter( 'wpseo_xml_sitemap_img', '__return_false' );

Отключить / удалить схему JSON + LD

В случае если вам не нужно формируемое плагином json shema.org то её можно отключить

add_filter( 'wpseo_json_ld_output', '__return_empty_array' );

При необходимости отключить OpenGraph через хуки

add_action('wp_head', 'remove_all_wpseo_og', 1);
function remove_all_wpseo_og() {
   remove_action( 'wpseo_head', array( $GLOBALS['wpseo_og'], 'opengraph' ), 30 );
}

По элементное отключение OpenGraph

add_filter('wpseo_opengraph_url' , '__return_false' );
add_filter('wpseo_opengraph_desc', '__return_false' );
add_filter('wpseo_opengraph_title', '__return_false' );
add_filter('wpseo_opengraph_type', '__return_false' );
add_filter('wpseo_opengraph_site_name', '__return_false' );

Если вы не хотите или не умеете работать с кодом

Существует большое количество плагинов которые отключают разные элементы по отдельности и все разом, если вы все таки решили воспользоваться плагином, то все действия описанные выше можно выполнить с помощью плагина Clearfy

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вы можете использовать HTML- теги и атрибуты:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>