Intereting Posts
Как искать файл переменной по его идентификатору изменения в поле поиска продукта в woocommerce? Проблемы с системой меню плагинов WP Как использовать Twig + Timber с несколькими циклами на основе значения мета-ключа Исходный URL-адрес источника звука выглядит странно, как mp3? _ = 1 в WordPress Ограничить контент на основе продукта покупки woocommerce Могу ли я использовать init hook для использования API? Добавление меню плагина в многопользовательском режиме Изменение размера редактора WYSIWYG Персонализированное сообщение для каждой уникальной защищенной паролем страницы Почему jQuery загружается на Ubuntu, но не на Windows? Как добавить изображение поверх логотипа заголовка в тему для детей? показывая старые статьи, не испортив архив Получать сообщение по термину из пользовательской таксономии в другом блоге в сети? Сохранение пользовательских данных для каждого пользователя Не удалось найти API-ключ для моего блога

Мне нужно какое-то направление, как иметь боковую панель, основанную на мета, а не на странице

Я работаю над плагином, который позволяет пользователю создавать «типы страниц / сообщений», настраивать стиль типа, а затем помечать страницу / сообщение с этим типом. Все это работает. Моя проблема заключается в том, что этот плагин также должен позволять им прикреплять виджеты к указанному типу.

У меня нет способа узнать, сколько «типов» есть в любое время.

Плагин работает следующим образом:

  • Пользователь создает типы (кошка, собака, мышь)
  • Пользователь задает такие параметры, как цвета фона, цвета ссылок и т. Д. Для типа
  • Пользователь определяет виджеты для этого типа

Когда страница / сообщение просматривается, страница обнаруживает, есть ли у нее тип. Если он делает это, то тянет все релевантные данные к этому типу.

Все работает СОВЕРШЕННО.

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

Мой план:

  • Зарегистрируйте боковую панель под названием «пользовательская боковая панель»
  • Создайте страницу, которая имитирует страницу «Виджеты»
  • Разрешить пользователю добавлять виджетов на «пользовательскую боковую панель»,
  • Плагин хранит данные для боковой панели на основе идентификатора «type»

Я не могу использовать другой плагин, так как функция боковой панели должна объединяться прямо в мой плагин. Я даже не уверен, что это сработает или даже с чего начать. Любой толчок в правильном направлении был бы замечательным!

  1. Создайте боковую панель $type . '_sidebar' $type . '_sidebar'
  2. Зарегистрируйте боковую панель $type . '_sidebar' $type . '_sidebar' (например, dog_sidebar )
  3. Передайте тип как аргумент GET для widget.php (создайте некоторые записи меню или что-то еще, где вы wp-admin/widgets.php?sidebar_type=dog_sidebar например, на wp-admin/widgets.php?sidebar_type=dog_sidebar )
  4. Отфильтруйте каждую боковую панель, которая не должна отображаться. Вы можете использовать эту функцию:

      global $wp_registered_sidebars; $type =filter_input( INPUT_GET, 'sidebar_type', FILTER_SANITIZE_STRIPPED ); if ( empty( $type ) ) return; if ( isset( $wp_registered_sidebars[ $type ] ) ) { $keep = array( $type => $wp_registered_sidebars[ $type ] ); $wp_registered_sidebars = array_intersect_key( $keep, $wp_registered_sidebars ); } } add_action( 'sidebar_admin_setup', 'filter_sidebars', 1, 0 ); 

Например, в Двадцать двенадцать есть три зарегистрированные боковые панели (идентификаторы боковой панели): боковая панель-1, боковая панель-2 и боковая панель-3. Если вы сейчас перейдете на your-blogdoma.in/wp-admin/widgets.php?sidebar_type=sidebar-3 , your-blogdoma.in/wp-admin/widgets.php?sidebar_type=sidebar-3 только третья боковая панель (с sidebar-3 your-blogdoma.in/wp-admin/widgets.php?sidebar_type=sidebar-3 ID sidebar-3 ).

Если вы зарегистрировали боковую панель dog_sidebar и заходите в свой your-blogdoma.in/wp-admin/widgets.php?sidebar_type=dog_sidebar , единственной видимой боковой your-blogdoma.in/wp-admin/widgets.php?sidebar_type=dog_sidebar является «Боковая панель для собак» (с идентификатором dog_sidebar ).

Плагин хранит данные для боковой панели на основе идентификатора «type»

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

Я закончил тем, что просто создал боковую панель и любой предмет, который был там размещен, добавлена ​​выпадающая рамка, чтобы назначить ей специальное место.