Enlace a Categoría de Producto en WooCommerce

20 ago 2015, 22:31:11
Vistas: 30.7K
Votos: 2

Estoy creando una plantilla para la página archive-product.php en WooCommerce.

Me gustaría tener 3 cajas y enlazar cada una a una categoría de producto diferente.

¿Cómo obtengo un enlace dinámico para cada categoría de producto en la etiqueta <a>? Por ahora he puesto enlaces estáticos, pero estoy seguro de que hay una forma de hacerlos dinámicos en WordPress

Así es como se ve mi código:

    <ul class="shop-items">
      <li class="fine-art">
        <a href="http://url.com/product-category/categories/fine-art/">
         <div>Bellas Artes
          <span>Descripción</span>
          </div>
        </a>
       </li>
       <li class="dance-art">
        <a href="http://url.com/product-category/categories/dance-art/">
         <div>Arte de Danza
          <span>Descripción</span>
          </div>
        </a>
       </li>
     <li class="history-art">
        <a href="http://url.com/product-category/categories/history-art/">
         <div>Arte Histórico
          <span>Descripción</span>
          </div>
        </a>
       </li>
 </ul>
0
Todas las respuestas a la pregunta 2
0

Para este propósito existe la función get_term_link (documentación).

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

La categoría de producto es simplemente una taxonomía de WP, por lo que hay muchas funciones para trabajar con ella. En este caso necesitas saber el ID de tu categoría de producto (en realidad, el ID del término de taxonomía). Al editar una categoría, lo encontrarás en la URL: .../edit-tags.php?action=edit&taxonomy=product_cat&tag_ID=42&post_type=product

21 ago 2015 08:35:33
0

Estoy intentando hacer lo mismo

<?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', 'título de sección en personalizador', '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__( 'Categoría de posts para el slider', 'olsen-light-child' ),
        'description'   => esc_html__( 'Selecciona la categoría de la cual el slider mostrará posts. Si no se selecciona ninguna categoría, el slider se desactivará.', 'olsen-light-child' ),
    ) ) );
}

add_action( 'customize_register', 'olsen_light_child_customize_register' );

pero cuando muestro mis ajustes en mi página frontal, muchos elementos de mi sitio desaparecen..., alguna pista, gracias

<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 jun 2020 19:57:17