Ответы пользователя по тегу WordPress
  • Как передать параметр в add_action?

    @denism300 Автор вопроса
    в общем, сделал так:
    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
            }
        }
    }
    Ответ написан
    Комментировать
  • Как в WP All Import разбить строку по разделителю?

    @denism300 Автор вопроса
    Сам спросил - сам отвечу.
    Значения атрибута должны быть разделены вертикальным разделителем без пробелов, т.е.,
    вместо:
    синий, красный, белый

    должно быть:
    синий|красный|белый
    Ответ написан
    1 комментарий
  • Как использовать разные Walker для меню в виджетах?

    @denism300 Автор вопроса
    Сам спросил - сам отвечу
    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);
    Ответ написан
    3 комментария
  • Какой плагин Wordpress умеет группировать изображения и выводить их?

    @denism300 Автор вопроса
    В общем, решил задачу так:
    Установил плагин Enhanced Media Library, создал в нем таксономию, далее в этой такснономии создал рубрики, рассортировал картинки и уже в коде шаблона вытаскиваю запросом нужные картинки
    $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>';
    }

    в принципе, если нужен только полный размер картинки, то можно вместо wp_get_attachment_image_url() обращаться к свойству guid:
    echo '<pre>' . print_r($p->guid, 1) . '</pre>';
    Ответ написан
    Комментировать
  • Как сделать вывод миниатюры товара ссылкой?

    @denism300 Автор вопроса
    Ответ:
    руками. Хуками не прокатит, или я не нашел как.
    <a href="<?php echo get_permalink($product->post->id); ?>" class="woocomerce-product-thumb">
    	<?php do_action('woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10); ?>
    </a>
    Ответ написан
    Комментировать
  • Как в woocommerce изменить кнопку, которая появляется при добавлении товара в корзину?

    @denism300
    после добавления товара кнопке "в корзину" присваивается класс added. Скрой ее с помощью стилей, а кнопку "перейти в корзину" так же стилями отредактируй.
    текст можно поменять с помощью плагина LocoTranslate.
    Ответ написан
    Комментировать
  • Как в WordPress добавить блок span к раскрывающемуся пункту меню?

    @denism300 Автор вопроса
    решение, если вдруг кому пригодится
    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 );
    	}
    }
    Ответ написан
    Комментировать