Как запретить вывод виджетов (без плагинов)?

Всем привет.
Мне нужна помощь/консультация (нужное подчеркнуть) по выводу виджетов.
Пишу функционал на для вывода виджетов с помощью полей ACF (пожелание заказчика).
Через фильтр dynamic_sidebar_params получаю значение полей, где указано, на каких страницах выводить данный виджет. Вот теперь загвоздка - с помощью чего можно сделать запрет вывода виджета, до срабатывания условия на вывод? То есть мне изначально нужно не отображать виджеты и только после срабатывания условия показать.

Заранее благодарю.
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@kastembay Автор вопроса
Русич
Все, решил сам. Ларец то просто открывался.
Кому-нибудь да мой код пригодиться

Кодище!!!

add_filter('dynamic_sidebar_params', 'my_dynamic_sidebar_params');

function my_dynamic_sidebar_params( $params ) {

	if (is_admin()){
		return $params;
	}

	$widget_id = $params[0]['widget_id'];

	if (get_field("widget_page", 'widget_'. $widget_id)){

		$pages_id = get_field("widget_page", 'widget_'. $widget_id);
		$pages_array = array('page' => $pages_id);
		$params = array_merge($params, $pages_array);

		if (is_singular()){
			$id = get_the_ID();
			$name = in_array($id, $params['page']);
		}
	}


	if (get_field("widget_category", 'widget_'. $widget_id)){

		$categories_id = get_field("widget_category", 'widget_'. $widget_id);
		$categories_array = array('category' => $categories_id);
		$params = array_merge($params, $categories_array);

		if(is_category())
		{
			$id = get_the_category()[0]->cat_ID;
			$name = in_array($id, $params['category']);
		}
	}

	if(!$name){
		return false;
	};


	return $params;

}

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы