Главная » WordPress » Статьи Wordpress » WordPress API: add_action. Хук-пример использования: автозаголовки для определённых рубрик на сайт
Распечатать статью

WordPress API: add_action. Хук-пример использования: автозаголовки для определённых рубрик на сайт

На небольшом практическом примере рассмотрим использование функции add_action в WordPress.

Исходные данные. Пусть имеется рубрика «Плагины WordPress». Дочерняя рубрика «Виджеты».

Требуется чуть автоматизировать формирование заголовков записи. Т.е., при сохранении записи из рубрики «Виджеты» сделаем добавление своей части заголовка. Например, любой title (чаще всего обёрнутый в тег h1) обязан будет начинаться с одного из следующих словосочетаний:

  • плагин для WordPress;
  • WordPress модуль;
  • вордпресс плагин;
  • вордпресс виджет

и т.п.

В functions.php темы, либо коде плагина прописываем наш хук для WordPress:

/* Автозаголовки для рубрики. Это лишь пример.
 * Получая $title, функция возвращает модифицированный заголовок
 */
    function auto_header_for_category($title) {
    global $post;
        $category = get_the_category($post->ID);      

        $autoheader = array(
            0 => 'Плагин для WordPress',     
            1 => 'WordPress модуль'  ,
            2 => 'ВордПресс плагин',
            3 => 'ВордПресс виджет'
        );

        if (  ($category[0]->category_parent == 10) and 
//получили родительской ID-рубрики 
	     (strpos($title,'ВордПресс') === false) and 
	     (strpos($title, 'WordPress') === false)  )   { 
//проверили, что строка ещё не приведена к нашему виду
            $title = $autoheader[rand(0, 3)] . '  '. $title;
//из массива $autoheader, используя ГСЧ прибавили вставку
        }

        return $title;
    }

А теперь устанавливаем ловушку/хук WordPress) на действие/событие «перед сохранением заголовка»:

add_action('title_save_pre', 'auto_header_for_category);

Готово, при сохранении/обновлении поста будет дописываться на title. Недостаток: при сохранении записи нужно будет повторно нажать на кнопку «Обновить».

Проверено на WP 3.0.1 и WP 3.2.1.

Источник:  sooource.net

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи