Ссылка на категорию товаров в WooCommerce

20 авг. 2015 г., 22:31:11
Просмотры: 30.7K
Голосов: 2

Я создаю шаблон для страницы archive-product.php в WooCommerce.

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

Как получить динамическую ссылку для каждой категории товаров в теге <a>? Сейчас я использую статические ссылки, но я уверен, что есть способ сделать их динамическими в WordPress

Вот как выглядит мой код:

    <ul class="shop-items">
      <li class="fine-art">
        <a href="http://url.com/product-category/categories/fine-art/">
         <div>Изобразительное искусство
          <span>Описание</span>
          </div>
        </a>
       </li>
       <li class="dance-art">
        <a href="http://url.com/product-category/categories/dance-art/">
         <div>Танцевальное искусство
          <span>Описание</span>
          </div>
        </a>
       </li>
     <li class="history-art">
        <a href="http://url.com/product-category/categories/history-art/">
         <div>Историческое искусство
          <span>Описание</span>
          </div>
        </a>
       </li>
 </ul>
0
Все ответы на вопрос 2
0

Для этой цели существует функция get_term_link (документация).

<a href="<?php echo get_term_link( 42 ,'product_cat') ?>">Fine Art ... etc.</a>

Категория товара - это просто таксономия WordPress, поэтому существует множество функций для работы с ней. В данном случае вам необходимо знать ID вашей категории товара (фактически, ID термина таксономии). При редактировании категории вы найдёте его в URL: .../edit-tags.php?action=edit&taxonomy=product_cat&tag_ID=42&post_type=product

21 авг. 2015 г. 08:35:33
0

Я пытаюсь сделать то же самое

<?php

class My_Dropdown_Category_Control extends WP_Customize_Control {

    public $type = 'dropdown-category';

    protected $dropdown_args = false;

    protected function render_content() {
        ?><label><?php

        if ( ! empty( $this->label ) ) :
            ?><span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span><?php
        endif;

        if ( ! empty( $this->description ) ) :
            ?><span class="description customize-control-description"><?php echo $this->description; ?></span><?php
        endif;

        $dropdown_args = wp_parse_args( $this->dropdown_args, array(
            'taxonomy'          => 'product_cat',
            'show_option_none'  => ' ',
            'selected'          => $this->value(),
            'show_option_all'  => '',
            'orderby'          => 'name',
            'order'            => 'ASC',
            'show_count'       => 1,
            'hide_empty'      => 1,
            'child_of'        => 0,
            'exclude'         => '',
            'hierarchical'    => 1,
            'depth'           => 0,
            'tab_index'       => 0,
            'hide_if_empty'   => false,
            'option_none_value' => 0,
            'value_field'     => 'term_id',
        ) );

        $dropdown_args['echo'] = false;

        $dropdown = wp_dropdown_categories( $dropdown_args );
        $dropdown = str_replace( '<select', '<select ' . $this->get_link(), $dropdown );
        echo $dropdown;

        ?></label><?php

    }
}


function olsen_light_child_customize_register( WP_Customize_Manager $wp_customize ) {
    require_once get_stylesheet_directory() . '/inc/dropdown-category.php';

    $wp_customize->add_section( 'homepage', array(
        'title' => esc_html_x( 'Test-Link', 'название раздела в кастомайзере', 'olsen-light-child' ),
    ) );

    $wp_customize->add_setting( 'home_slider_category', array(
        'default'           => 0,
        'sanitize_callback' => 'absint',
    ) );

    $wp_customize->add_control( new My_Dropdown_Category_Control( $wp_customize, 'home_slider_category', array(
        'section'       => 'homepage',
        'label'         => esc_html__( 'Категория постов для слайдера', 'olsen-light-child' ),
        'description'   => esc_html__( 'Выберите категорию, из которой слайдер будет показывать посты. Если категория не выбрана, слайдер будет отключен.', 'olsen-light-child' ),
    ) ) );
}

add_action( 'customize_register', 'olsen_light_child_customize_register' );

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

<a href="<?php echo get_term_link(get_theme_mod(‘home_slider_category’))?>"><span><?php echo get_theme_mod('gs_slider_one_txt')?></span></a>
20 июн. 2020 г. 19:57:17