dunhamzzz
  • 0
Новичок

Подключение для замены областей боковой панели/виджетов

  • 0

Цель: заменить боковую панель на всех сайтах в моей сети контентом, загружаемым из плагина, во всех темах.

Мне нужен способ переопределения области боковой панели/основного виджета на всех сайтах в моей сети.

Я написал плагин, который генерирует боковую панель с помощью вызова функции, но как я могу заставить этот контент полностью заменить боковую панель? В настоящее время я могу только вызывать хук get_sidebar(), а не заменять это действие.

add_action('get_sidebar', 'my_get_sidebar', 11);

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

Share
  1. Вы должны обратить внимание на то, чтобы ваши боковые панели использовали функцию удаления.

    Затем вы можете удалить боковую панель и заменить ее в функции любым количеством способов.

    Например (в этом примере используется условное выражение на основе страницы с именем some-page.

    function change_sidebar_yay() {
        if ( is_single('some-page') ) {
            remove_action( 'old_sidebar', 'your_function' ); //this is sidebar you want removed
            add_action('get_sidebar', 'my_get_sidebar', 11);
        }
    }
    

    http://codex.wordpress.org/Function_Reference/remove_action

    И — это имя old_sidebar и your_function имя функции боковой панели, которую вы хотите удалить, вам придется заглянуть в свою тему, чтобы найти фактические значения, которые использовал автор темы (обычно в functions.php, но не всегда).

    Также, если тема жестко запрограммирована или не создает боковые панели с помощью хуков/действий, это не сработает.

    • 0
  2. не уверен, но, возможно, плагин Widget Logic может стать хорошей отправной точкой для разработки вашей функции?

    • 0

Оставить ответ

You must login to add an answer.