class someClass {
public function f_1() {
$b = false;
if($a) {
$b = true;
}
set_transient('some_param', $b, 0);
self::f_2();
}
public function f_2() {
add_action('wp_footer', [__CLASS__, 'f_3'], 10, 1);
}
public function f_3() {
$param = get_transient('some_param');
if($param) {
// do something
}
}
}
синий, красный, белый
синий|красный|белый
function widget_nav_args($nav_menu_args, $nav_menu, $args, $instance)
{
if ($args['id'] === 'header-menu') { // ID сайдбара, где располагается виджет с меню
return array_merge($nav_menu_args, array(
// аргументы, передаваемые в меню, например:
'walker' => new My_Custom_Walker(),
));
}
return $nav_menu_args;
}
add_filter('widget_nav_menu_args', 'widget_nav_args', 10, 4);
$posts = get_posts(
array(
'post_type' => 'attachment',
'tax_query' => array(
array(
'taxonomy' => 'mediacat', //такса
'field' => 'slug', //поле, по которому ищем
'terms' => 'reviews' //слаг рубрики внутри таксы, из которой вытаскиваем картинки
),
),
)
);
foreach ($posts as $p) {
echo '<pre>' . print_r(wp_get_attachment_image_url($p->ID, 'full'), 1) . '</pre>';
}
echo '<pre>' . print_r($p->guid, 1) . '</pre>';
class My_Walker_Mob_Menu extends Walker_Nav_Menu {
function start_el(&$output, $item, $depth, $args) {
// назначаем классы li-элементу и выводим его
$class_names = join( ' ', $item->classes );
$class_names = ' class="' .esc_attr( $class_names ). '"';
$output.= '<li id="menu-item-' . $item->ID . '"' .$class_names. '>';
// назначаем атрибуты a-элементу
$attributes.= !empty( $item->url ) ? ' href="' .esc_attr($item->url). '"' : '';
$item_output = $args->before;
// проверяем, есть ли класс menu-item-has-children и, если есть, модифицируем ссылку
if (strpos($class_names, 'menu-item-has-children'))
$item_output.= '<a'. $attributes .'>'.$item->title.'<span></span></a>';
else
$item_output.= '<a'. $attributes .'>'.$item->title.'</a>';
// заканчиваем вывод элемента
$item_output.= $args->after;
$output.= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}