У попередніх частинах цієї серії статей ми вивчили 40 WordPress фільтрів. У цьому уроці ми розглянемо останні десять фільтрів і наведемо приклади їх практичного застосування.

Приступимо!

Налаштовуємо завантажувач скриптів

У WordPress є свій завантажувач скриптів wp_enqueue_script(), який дозволяє по черзі обробляти файли з JavaScript і не навантажувати систему. Фільтр script_loader_src дає можливість налаштувати завантаження скриптів і їх висновок.

Приклад: прибираємо параметр «Версія» з скрипта

Google Page Speed, Yahoo YSlow та інші сервіси для вимірювання швидкодії сайтів зазвичай не дуже добре ставляться до наявності URL – параметрів у файлах JavaScript. У цьому є своя частка істини.

Скрипти з параметрами в кінці URL – рядки не кешуються проксі-серверами (додаткова інформація по цій темі).

На жаль, в WordPress параметр «Version» для скриптів (стилів) за замовчуванням активований. Але, на щастя, з допомогою коду, наведеного нижче, ми можемо вимкнути параметр ver:

Готово! Файли ваших Java – скриптів (і CSS – стилів) більше не мають такого параметра, як «Version».

Хороша стаття на тему використання мови JavaScript в WordPress.

Додаємо HTML в мета – бокс до заголовним зображень публікації

Фільтр admin_post_thumbnail_html, як припускає його назва, дозволяє додавати HTML – вміст мета – бокс заголовного зображення публікації. HTML – код буде відображено відразу після посилання «Встановити зображення як картинку посту».

Приклад: як полегшити користувачам процес додавання зображень до публікації

Уявіть, що ви робите блог для клієнта. Вести блог він збирається самостійно і до сторонньої допомоги вдаватися не має наміру. Але він постійно забуває додавати зображення до публікації і вам потрібно додати нагадування на сторінку додавання нової публікації. Нижче наведено приклад коду, за допомогою якого можна реалізувати:

Шановний користувач! Натисніть вище, щоб додати зображення, яке буде відображатися у верхній частині вашої публікації. Пам’ятайте: Ширина зображення повинна бути не менше 900 пікселів !

‘;
}
?>

З допомогою такого нагадування ваш клієнт не забуде встановити «верхнє зображення» з мінімальною шириною 900 пікселів.

Захищаємо блог від флуду в коментарях comment_flood_filter

За замовчуванням WordPress запобігає дії «флудеров«, які неодноразово залишають коментарі до ваших публікацій.

Наприклад, якщо відвідувач відправляє коментар до запису, то після цього повинно пройти 15 секунд (значення за замовчуванням), перш ніж він зможе залишити ще один коментар. Цей фільтр дозволяє змінювати налаштування часу або відключити перевірку взагалі.

Приклад: збільшуємо затримку між коментарями

Як було сказано, WordPress встановлює проміжок 15 секунд для коментує. У деяких випадках вам може знадобитися збільшити цю паузу. Наведений нижче код показує, як це зробити:

Значення «60» міняйте на необхідне в вашому випадку.

Бонусний приклад: відключаємо перевірку на флуд в коментарях

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

Майте на увазі, що remove_all_filters() є функцією. Як і передбачає назва, вона прибирає всі можливі перевірки з фільтра.

Міняємо елементи розділу «Довідкова інформація»

Розділ «Довідкова інформація» (раніше він називався «Прямо зараз») тримає нас в курсі того, як багато сторінок записів і коментарів розміщено в базі даних сайту.

Фільтр dashboard_glance_items допоможе відобразити додаткову інформацію, таку як кількість публікацій у певній категорії.

Приклад: відображаємо публікації рубрики «Events» у розділі «Довідкова інформація»

Уявімо, що ви ведете «подієвий блог» де знайомите ваших відвідувачів з цікавими подіями, а категорія публікацій має користувальницький тип «Events» (id одно event). Для того щоб у вас була можливість бачити загальна кількість подій в блозі – використовуйте функцію з коду, наведеного нижче, і прикріплюйте її до фільтру dashboard_glance_items:

publish );
$post_type = get_post_type_object( $type );
$text = _n( ‘%s ‘ . $post_type->labels->singular_name, ‘%s ‘ . $post_type->labels->name, $published, ‘your_textdomain’ );
$text = sprintf( $text, number_format_i18n( $published ) );
if ( current_user_can( $post_type->cap->edit_posts ) ) {
$output = ‘name . ‘»>’ . $text . «;
echo ‘

  • name . ‘-count»>’ . $output . ‘
  • ‘;
    } else {
    $output = ‘‘ . $text . ‘‘;
    echo ‘

  • name . ‘-count»>’ . $output . ‘
  • ‘;
    }
    }
    }
    return $items;
    }
    // Джерело прикладу: http://www.trickspanda.com/2014/03/add-custom-post-types-glance-dashboard-widget-wordpress/
    ?>

    Досить просто, вірно? Значення змінної $post_types міняйте у відповідності зі своїми вимогами.

    Міняємо привітання на формі входу

    Фільтр login_message дозволяє змінювати повідомлення на формі входу, встановлене за замовчуванням. Це повідомлення виводиться над формою для введення даних для авторизації. Це не повідомлення про помилки, воно несе в собі інформаційні дані.

    Приклад: міняємо повідомлення «Забули пароль?»

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

    Введіть адресу вашої електронної пошти, і ми надішлемо вам лист
    з посиланням для скидання пароля

    ‘;
    return $message;
    }
    return;
    }
    // Джерело прикладу: http://www.pypelineweb.com/blog/change-wordpress-login-message-filter-it-out/
    ?>

    У файлі wp-login.php ми бачимо наступні елементи:

    • logout;
    • lostpassword і retreivepassword (псевдонім);
    • resetpass і rp (псевдонім);
    • register;
    • login.

    За аналогією з прикладом, наведеним вище, можете написати повідомлення для будь-якого action.

    Редагуємо текст повідомлення про результати дій

    Є повідомлення, що відображаються при оновленні, видаленні у кошик, відновлення або видалення записів. Якщо вам потрібно змінити ці повідомлення – використовуйте фільтр bulk_post_updated_messages.

    Приклад: редагуємо повідомлення для публікацій користувальницького типу

    Скажімо, вам не подобається текст повідомлень, які користувач бачить після публікації «подій», і ви хочете змінити їх. Ось як це робиться:

    _n( ‘%s подія оновлено.’, ‘%s події оновлено.’, $bulk_counts[‘updated’] ),
    ‘locked’ => _n( ‘%s подія не оновлено, його хтось редагує.’,
    ‘%s події не оновлені, їх хтось редагує.’, $bulk_counts[‘locked’] ),
    ‘deleted’ => _n( ‘%s подія назавжди вилучено.’, ‘%s події назавжди вилучено.’, $bulk_counts[‘deleted’] ),
    ‘trashed’ => _n( ‘%s подія перенесено в Кошик.’, ‘%s події перенесені в Кошик.’, $bulk_counts[‘trashed’] ),
    ‘untrashed’ => _n( ‘%s подія відновлено з Кошика.’, ‘%s події відновлено з Кошика. ‘, $bulk_counts[‘untrashed’] ),
    );
    return $bulk_messages;
    }
    // Джерело прикладу: http://codex.wordpress.org/Plugin_API/Filter_Reference/bulk_post_updated_messages
    ?>

    Просто? Досить легко! Пам’ятайте, що можна перевести рядка повідомлень, якщо ви використовуєте кілька мов.

    Налаштовуємо віджет категорій за замовчуванням

    У деяких випадках вам потрібно внести зміни в ядро віджета категорій. Використовуйте для цього фільтр widget_categories_args.

    Приклад: виключаємо деякі категорії з віджету

    Якщо потрібно приховати деякі категорії з віджета «Категорії», застосуйте код, наведений нижче:

    Значення масиву $exclude_arr містять у собі ID «непотрібних» категорій. Міняйте їх відповідно вашої потреби.

    Перенаправлення користувача після успішної реєстрації

    За замовчуванням, після реєстрації, WordPress просто нагадує про необхідність перевірити ваш електронну поштову скриньку, але при цьому блокує перехід на інші сторінки. З допомогою фільтра registration_redirect ви можете встановити користувальницький безпечний адреса для перенаправлення після успішної реєстрації.

    Приклад: дозволимо новим користувачам завантажити вашу дивовижну електронну книгу

    Якщо ви пропонуєте безкоштовну електронну книгу вашим відвідувачам, коли вони реєструються у вас на сайті, ви можете перенаправити їх на сторінку з посиланням для завантаження електронної книги за допомогою цього простого коду:

    Нагадаю, що редирект, налаштований за допомогою функції wp_safe_redirect() дозволить перенаправити користувача тільки на внутрішні сторінки сайту, поки ви з допомогою фільтра allowed_redirect_hosts не визначте «безпечні» хости. Ми розглянули цей фільтр у першій статті. Прочитайте її, якщо ще не зробили цього.

    Змінюємо поля форми для введення коментаря

    У WordPress є функція comment_form(), яка відображає форму коментування, і, поля цієї форми можна налаштовувати, використовуючи аргументи функції.

    Якщо ви розробляєте плагін, то не зможете змінювати її параметри. Фільтр, приклад якого наведено нижче, дозволяє редагувати або зовсім видалити HTML – код полів форми коментарів.

    Приклад: прибираємо полі URL з форми коментування

    Припустимо, ви, як позаштатний веб-дизайнер, робите «плагін налаштувань за замовчуванням«, щоб використовувати його на сайтах ваших клієнтів і хочете, щоб полів з введенням URL не було у формах коментарів. Для цього використовуйте функцію з прикладу, наведеного нижче, й заохочуйте її до фільтру:

    Додайте цей код у файл плагіна і мета досягнута!

    Вносимо зміни в перелік допустимих типів файлів

    За замовчуванням WordPress встановлений певний набір типів файлів, які можна завантажувати в медіа — бібліотеку. З допомогою фільтра upload_mime ви можете вносити зміни в цей список.

    Приклад: забороняємо завантажувати файли GIF

    Так, так, GIF. Цей формат став популярний в 1999 році і залишається популярним і донині. Чи знаєте ви, що одним з перших мемів був GIF з танцюючим дитиною?

    Старі добрі часи, коли ми робили «домашні сторінки» в Yahoo! Geocities і насолоджувалися дратівливим звуком мавпи з ICQ кожен раз коли друг запрошував нас на зустріч IMed.

    Добре, але, так чи інакше, якщо вам знадобиться заборонити закачування GIF – файлів в медіа — бібліотеку вашого сайту, робіть це за допомогою коду, наведеного нижче:

    Поки-поки, чотирьох секундний відеокліп, який не варто дивитися більш ніж один раз, але він не втомлюється повторювати нескінченно!

    Кінець п’ятої частини

    Ми підійшли до кінця останнього десятка фільтрів. Сподіваюся, вам сподобалося, і ви дізналися щось нове. У наступній, заключній статті ми коротко переглянемо все те, що вивчили. Побачимося!

    Мені цікаві ваші думки з приводу того, що нового ви дізналися. Залишайте ваші коментарі, якщо вам сподобалася стаття, не соромтеся поділитися нею!

    Переклад статті «50 Filters of WordPress: Filters 41-50» був підготовлений дружною командою проекту Сайтостроение від А до Я.