Взлом виджета категории WordPress - PullRequest
2 голосов
/ 22 апреля 2010

Стандартный виджет категорий WordPress не позволяет исключать именованные категории.

Я создал плагин, который добавляет добавленный виджет категории в список «Доступные виджеты», который дает мне некоторый контроль над элементами, которые я хочу исключить. Код ниже ...

<?php
/*
Plugin Name: Custom Categories Widget
Plugin URI: http://mysite.com
Description: Removes the Specified Categories from the Default Categories Listing
Author: Me
Version: 1.0
Author URI: http://mysite.com
*/


function widget_my_categories() 
{
    wp_list_categories('exclude=1');
}

function my_categories_init()
{
  register_sidebar_widget(__('Custom Categories Widget'), 'widget_my_categories');
}

add_action("plugins_loaded", "my_categories_init");
?>

Однако я хочу, чтобы сгенерированный код эмулировал тот же внешний вид, что и виджет категорий по умолчанию (т. Е. Слово "категории" отображается в моем виджете в виде маркера, но как элемент заголовка уровня h4 в виджете категорий по умолчанию) Я хочу, чтобы к моему пользовательскому виджету была применена та же структура, что и для виджета категорий по умолчанию.

Я также хотел бы дать пользователю возможность указать заголовок списка категорий (так же, как это можно сделать в виджете категорий по умолчанию).

Кстати, я использую идентификатор 1, который является категорией по умолчанию «без категории», и назначаю элементы для этой категории, которые я не хочу отображать в списке.

Любая помощь высоко ценится! :)

1 Ответ

6 голосов
/ 22 апреля 2010

Код для виджета категорий находится в wp-includes/default_widgets.php. Просто скопируйте класс WP_Widget_Categories, переименуйте его и добавьте дополнительные аргументы к вызову wp_list_categories.

Кроме того, вы можете изменить аргументы для вызова wp_list_categories в виджете, используя фильтр widget_categories_args, хотя это будет применяться ко всем экземплярам виджета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...