Рубрика: Виджеты

Как в облаке меток выделить текущие метки записи?

Выделение текущих меток записи в облаке меток

Иногда требуется выделить в облаке меток текущие метки записи. Стандартным путем это сделать нельзя, так как функция вывода облака меток попусту не обладает такой настройкой. Можно воспользоваться каким-либо сторонним плагином для вывода облака меток, а можно стилизовать стандартный виджет облака меток. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как выводить в виджете «Свежие записи» произвольные типы записей?

Стандартный виджет свежих записей

Стандартный виджет WordPress "Свежие записи" выводит только стандартные записи (тип 'post'). Это можно исправить, с помощью следующего кода, который вам необходимо добавить в файл functions.php вашей темы:

//произвольные типы записей в виджете "свежих записей" start
function wph_custom_posts_in_recent_posts($params) {
    $params['post_type'] = array('post', 'custom_type1', 'custom_type2');
    return $params;
}
add_filter('widget_posts_args', 'wph_custom_posts_in_recent_posts');
//произвольные типы записей в виджете "свежих записей" end

Где 'custom_type1' и 'custom_type2' это ваши типы произвольных записей.

Как управлять выводом виджетов на основе условий?

При необходимости настроить вывод виджетов только на конкретных страницах сайта вебмастеры обычно устанавливают для этого специальные плагины. Но не все знают, что управлять выводом виджетов в зависимости от каких-либо установленных вами условий можно и без использования плагинов. Например, чтобы вывести определенный виджет только на указанных страницах, вам надо использовать такой код, вставленный в файл functions.php вашей темы:

//вывод виджетов только на указанных страницах start
function wph_hide_widgets($instance, $widget, $args) {
    if ($widget->id_base == 'pages') { 
        if (!is_page(array('6','1608'))) {return false;}
    }
}
add_filter('widget_display_callback', 'wph_hide_widgets', 10, 3);
//вывод виджетов только на указанных страницах end

Данный код заставит выводиться виджет "Страницы" только на страницах с ID равным 6 и 1608. Изменив немного код можно поменять вывод наоборот:

Как включить вставку объектов (oEmbed) в виджетах?

YouTube ссылка в текстовом виджете

По умолчанию вставка объектов (oEmbed) для виджетов не работает. Это можно исправить с помощью следующего кода в файле functions.php вашей темы:

//включение oembed в виджетах start
add_filter('widget_text', array($wp_embed,'run_shortcode'), 8);
add_filter('widget_text', array($wp_embed,'autoembed'), 8);
//включение oembed в виджетах end

Так как ширина виджетов ограничена шириной сайдбара темы, то вставку объектов лучше производить через теги [embed] и [/embed] с указанием размеров объекта:

[embed width="300" height="120"]тут ссылка на ютуб-ролик[/embed]

Как удалить все стандартные виджеты движка?

Список доступных виджетов

При необходимости можно удалить все стандартные виджеты движка WordPress. Они пропадут со страницы "Внешний вид\Виджеты" и перестанут выводиться в сайдбарах сайта. Зачем это может быть нужно? Например, если в разрабатываемой вами теме используются свои виджеты на замену стандартных. Или при написании плагина, который добавляет более продвинутую версию стандартного виджета. Чтобы удалить все стандартные виджеты движка, вы должны добавить в файл functions.php вашей темы (или в файл вашего плагина) следующий код:

Как дополнительно настроить виджет «Облако меток»?

Настройки виджета облака меток

Стандартный виджет "Облако меток" практически не содержит никаких настроек. В нем можно указать лишь заголовок виджета и используемую таксономию. С помощью небольшого сниппета вы можете указать наименьший и наибольший размер меток, ограничить число меток и использовать все остальные параметры функции wp_tag_cloud, с помощью которой и выводится виджет облака меток. Для этого вам необходимо добавить в файл functions.php вашей темы следующий код:

Как удалить заголовок виджета?

Удаление заголовка виджетов

Я уже рассматривал один из способов изменения или удаления заголовков виджетов. Однако, если вам не надо изменять заголовки виджетов, а надо просто их скрыть, то проще будет воспользоваться другим кодом, который не надо подстраивать под каждый нужный виджет. Вам будет достаточно установить в начале заголовка символ "!", чтобы он был удален при выводе виджета на сайте.