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

Приступимо!

Фільтр пошукового запиту

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

Приклад: включаємо захищені паролем публікації в результат пошуку

Припустимо, ви використовуєте публікації для розкриття будь-якої інформації вашим клієнтам, ставите паролі для кожної ролі і відправляєте їх безпосередньо клієнтам.

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

prefix}posts.post_password = ‘ ‘)»;
$search = str_replace( $pattern, ‘ ‘, $search );
}
return $search;
}
// Джерело прикладу: http://wpsnipp.com/index.php/functions-php/include-password-protected-posts-in-search-results/
?>

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

Рівень стиснення для завантажуваних зображень

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

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

Стиснення зображення з допомогою PHP призводить до тонких спотворень, які можна побачити тільки на гострих деталях.

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

Фільтри текстового віджету

Віджети WordPress мають вбудовані фільтри. Фільтр widget_text, як ви, можливо, вже здогадалися, фільтр віджета Text.

Приклад: включаємо шорткоди для віджета Text

Часто дратує те, що WordPress за замовчуванням не дозволяє використовувати шорткоди в текстовому віджеті. Завдяки цьому фільтру ми можемо їх включити:

…стривайте, а хіба тут немає функції для хука? Насправді: це функція ядра, яка називається do_shortcode(), і, можливо ви чули про неї раніше. Оскільки функція для підключення до фільтру вже є, нам не потрібно писати ще одну.

Фільтр контенту RSS стрічки

Так само, як до публікацій можна застосувати фільтр the_content, також і до RSS стрічці можна застосувати фільтр the_content_feed.

Приклад: додавання ескізів публікацій до екземплярів RSS стрічки

Цей приклад є одним з моїх улюблених серед всіх прикладів, наведених у цій серії статей: додаємо таку необхідну мініатюру для елементів RSS:

‘float:left;margin-right:.75em;’ ) );
$content = get_the_excerpt() . » . __(
‘Read More’ ) . «;
if( » != $featured_image )
$content =’
‘. $featured_image . $content .

‘;
return $content;
}
?>

Якщо ви хочете, щоб ескізи відображалися в правій частині, просто змініть ‘float:left;margin-right:.75em;’ на ‘float:right;margin-left:.75em;’.

Зміна кнопок у візуальному редакторі

WordPress поставляється спільно з TinyMCE, просунутим WYSIWYG – редактором, який ми використовуємо для написання постів. З допомогою фільтра mce_buttons ми можемо змінювати першу лінію кнопок у редакторі.

Приклад: прибираємо непотрібні кнопки з редактора

Якщо блог запущений в режимі multi-author, і вам потрібно заборонити авторам використання деяких клавіш у редакторі, ви можете прибрати деякі з них (а можна і все разом) з допомогою коду, наведеного нижче:

Зверніть увагу, що фільтр не відключає функціонал — він просто видаляє кнопки.

Як я згадав, цей фільтр працює з першої лінійкою кнопок візуального редактора. Для другої лінійки («розширений набір«) існує інший фільтр mce_buttons_2 і ще два для порожніх наборів кнопок: mce_buttons_3 і mce_buttons_4.

Виключаємо термін з списків

Уявіть, що вам потрібно виключити термін з усіх списків визначень на вашому сайті. Цей маленький фільтр дозволить зробити нам саме те, що передбачає його назва.

Приклад: виключаємо категорії, які створює ваш плагін

Уявіть, що ви пишете плагін, який створює дві категорії, названі «Кращі плагіни» і «Гірші плагіни«. Буде виглядати непривабливо, якщо ці теги будуть відображені в списку категорій, так що вам потрібно їх приховати. Ось як ви можете це зробити:

І тут є цікава можливість: Цей фільтр приховає категорії також з адмінки. Вражає… і наводить жах.

Зміна списку розмірів зображень

При виборі зображень для публікацій, ви отримуєте можливість вибрати розмір зображення, перш ніж додати його в зміст посту. Корисний фільтр. Він дозволяє нам додати користувальницький розмір зображень (який створений заздалегідь з допомогою функції add_image_size()) в випадаючий список з розмірами.

Приклад: дозволимо авторам створювати свій власний розмір зображення

Припустимо, ви створили власну картинку з ім’ям «golden-ratio-thumb» і хочете дозволити авторам додавати зображення з таким розміром у свої пости, коли їм це необхідно.

Ось код, в якому це зроблено:

__( ‘Golden Ratio Thumbnail’ )
) );
}
// Джерело прикладу: http://codex.wordpress.org/Plugin_API/Filter_Reference/image_size_names_choose
?>

Занадто легко, не здається?

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

WordPress вирізає перші 55 слів публікації, прибирає форматування називає їх «витримка«, в якій підведено короткий підсумок посту. В кінці витримки ми бачимо[…] – рядок, яка мене страшенно дратує. На щастя, фільтр excerpt_more дозволяє змінювати її.

Приклад: додаємо посилання на посаду після «витримки»

Припустимо, ви хочете змінити цей текст і перетворити його в посилання на пост. Ось як це робиться:

Read more’;
}
?>

Так що ми знайшли хороше застосування трохи подразнюючій тексту.

Налаштовуємо стовпці списку публікацій

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

Фільтр manage_posts_columns дозволяє приховувати або додавати нові категорії (використовуючи дії або функції).

Приклад: прибираємо стовпець «Автор»

Якщо ви єдиний автор на своєму веб-сайті, то до чого вам бачити автора кожного запису? Ви можете видалити цей стовпець, щоб звільнити простір. Ось як це робиться:

Можемо продовжити! За замовчуванням, є сім стовпців, які ви можете сховати:

  • cb (чекбокси);
  • title (заголовок);
  • author (автор);
  • categories (категорії);
  • Tags (мітки);
  • Comments (коментарі).

На сторінках користувальницького типу використовуйте фільтр manage_$post_type_posts_columns де $post_type — ID імені типу користувача публікації.

Редагуємо контакти користувачів

Ви знаєте, що можете додати або видалити поля в профілі користувача? Так, саме з допомогою фільтра user_contactmethods.

Приклад: додавання користувацьких полів для соціальних акаунтів

Це дуже популярний сніппет для WordPress, тому як стандартно в профілі є поля типу «Jabber» і «AIM«. Багато хто хоче позбутися від них і додати нові. У нашому прикладі ми видалимо деякі поля контакту з користувачем і додамо нові:

Тепер профіль більше схожий на відповідність реальності, вірно?

Кінець третьої частини

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

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

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