Вивчаємо WordPress

602

Здрастуйте, шановні читачі блогу . У статті про високе навантаження на блог під управлінням WordPress я описував свою проблему і приводив опис того дійства, яке нібито вирішення проблеми допомогло. На жаль, я трохи попереду паровоза побіг, бо епізодична екстремальне навантаження на сервер не пішла (точніше кажучи, вона повернулася після закінчення свят). Хоча, вихідний код сторінки свого блогу трохи почистити від зайвого коду все ж тоді вийшло.

В коментарях до тієї статті, до речі, почерпнув для себе багато цікавого. Там же при описі ситуації я згадував, що взагалі-то все почалося з того, що мені на очі при побіжному перегляді вихідного коду сторінки блогу кинулося в очі те, що з’явилися якісь дивні й незнайомі рядки в шапці сторінки (між тегами Head), частина з яких є службовими гіперпосиланнями (link). Об’єднувало їх наявність в Урлі WP-JSON.

Вивчаємо WordPress

В тій стаття я згадав, що поки прийнятного рішення для видалення цих рядків вихідного коду WordPress не знайшов, але ось зараз начебто робоче рішення потрапило в руки і було випробувано. Прискорити процес вирішення проблеми з WP-JSON змусило те, що виявляється сторінки, на які ведуть посилання з цих рядків вихідного коду, лізуть в індекс Яндекса, і як він на це відреагує сказати важко. Краще все ж буде перепильнувати…

Видалення WP-JSON з WordPress 4.4

Власне, відразу наведу рішення. Природно, що воно не придумано мною (а взято звідси і звідси). Все як завжди робиться через нашу паличку-виручалочку, а саме файлик Функшион.пхп, який ви напевно знайдете в папці, де живе ваша тема оформлення (підключившись до сайту по ФТП через Файлзилу, наприклад).

Код, який відключає все це неподобство з WP-JSON, виглядає досить-таки об’ємно, але працює, тобто видаляє всі зайві рядки з «шапки» (службової області) сторінок вашого сайту, а також WordPress більше не буде генерувати всі ці сторінки з WP-JSON, які радісно їсть Яндекс:

remove_action( ‘wp_head’, ‘wp_oembed_add_discovery_links’ );
remove_action( ‘wp_head’, ‘rest_output_link_wp_head’ );
remove_action( ‘template_redirect’, ‘rest_output_link_header’, 11, 0 );
add_filter(‘rest_enabled’, ‘__return_false’);
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 );
remove_action( ‘init’, ‘rest_api_init’ );
remove_action( ‘rest_api_init’, ‘rest_api_default_filters’, 10, 1 );
remove_action( ‘parse_request’, ‘rest_api_loaded’ );
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’ );

Код можна вставляти в будь-яке місце functions.php, де закінчується якась функція (після крапки з комою). Якщо щось піде не так, то просто відкотіться тому (в редакторі коду типу Нотепада з плюсом це зробити не складно) і спробуйте вставити в іншому місці. З файлзилой зробити це буде не складно, а ось при використанні внутрішнього редактора теми в адмінці WordPress доведеться видаляти та відновлювати вручну, що не є добре.

Якщо після вставки коду сайт продовжує успішно відкриватися (а якщо немає?), відкрийте яку-небудь сторінку і подивіться її вихідний код (якщо використовуєте кешування в WordPress, то скиньте кеш). По ідеї, всі рядки з WP-JSON повинні будуть зникнути:

Вивчаємо WordPress

Що таке WP-JSON? Не знаю, а читати про це на англицком дуже складно для мене. Хоча, якщо хтось в коментах по-російськи і для «тупих» спробує пояснити, то із задоволенням почитаю.

Що ще можна видалити з вихідного коду блогу на WordPress?

Насправді, WordPress досить багато чого суне між тегами Head за замовчуванням. Чи добре це? Навряд чи. Краще все це справа підчистити. Особисто я займаюся цим перманентно і, на жаль, вже навіть не пам’ятаю що і як прибирав. Тому просто наведу фрагмент коду зі свого functions.php, де, наприклад, видаляються з шапки блогу службові посилання Link на попередні і наступні пости, Емодзі смайлики і т. п. Можливо, що там вже щось застаріле або зайве, але вже як є:

add_filter( ‘aioseop_prev_link’, ‘mayak_remove_prev_link’ );
add_filter( ‘aioseop_next_link’, ‘mayak_remove_prev_link’ );
remove_filter(‘comment_text’, ‘make_clickable’, 9);
remove_action( ‘wp_head’, ‘feed_links_extra’, 3 );
remove_action( ‘wp_head’, ‘feed_links’, 2 );
remove_action( ‘wp_head’, ‘rsd_link’ );
remove_action( ‘wp_head’, ‘wlwmanifest_link’ );
remove_action( ‘wp_head’, ‘index_rel_link’ );
remove_action( ‘wp_head’, ‘parent_post_rel_link’, 10, 0 );
remove_action( ‘wp_head’, ‘start_post_rel_link’, 10, 0 );
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link’, 10, 0 );
remove_action( ‘wp_head’, ‘adjacent_posts_rel_link_wp_head’, 10, 0 );
remove_action( ‘wp_head’, ‘wp_generator’ );
remove_action( ‘wp_head’, ‘wp_shortlink_wp_head’, 10, 0 );
add_filter( ‘show_admin_bar’, ‘__return_false’ );
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’ );

Вивчаємо WordPress

У результаті код в службовій області сторінок (між тегами Head) виглядає приблизно так (скрипти від Гугла я опустив, бо їх у вас, швидше за все, не буде):

head>
— створення, просування і заробіток на сайті

Трохи поясню. Два рядки:

Потрібно, щоб у соцмережі потрапляла завжди перша картинка зі сторінки при розшарювання. В принципі, це не обов’язково, але от мені так захотілося.

Рядки:

Фактично призначені для одного і того ж — я кажу Гуглу, що ця сторінка, пов’язана з таким-то людиною в соціальній мережі Google+ (фактично це претензія на авторство). Яку з них потрібно залишити я точно не знаю, тому присутні обидві.

Рядки:

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

Удачі вам! До зустрічей на сторінках блогу