Link alla Categoria Prodotto in WooCommerce

20 ago 2015, 22:31:11
Visualizzazioni: 30.7K
Voti: 2

Sto creando un template per la pagina archive-product.php in WooCommerce.

Vorrei avere 3 box e collegare ciascuno ad una diversa categoria di prodotti.

Come posso ottenere un link dinamico per ogni categoria prodotto nel tag <a>? Per ora ho inserito link statici, ma sono sicuro che ci sia un modo per renderli dinamici in WordPress

Ecco come appare il mio codice:

    <ul class="shop-items">
      <li class="fine-art">
        <a href="http://url.com/product-category/categories/fine-art/">
         <div>Arte Raffinata
          <span>Descrizione</span>
          </div>
        </a>
       </li>
       <li class="dance-art">
        <a href="http://url.com/product-category/categories/dance-art/">
         <div>Arte della Danza
          <span>Descrizione</span>
          </div>
        </a>
       </li>
     <li class="history-art">
        <a href="http://url.com/product-category/categories/history-art/">
         <div>Arte Storica
          <span>Descrizione</span>
          </div>
        </a>
       </li>
 </ul>
0
Tutte le risposte alla domanda 2
0

A questo scopo esiste la funzione get_term_link (documentazione).

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

La categoria di prodotto è semplicemente una tassonomia di WordPress, quindi esistono molte funzioni per lavorarci. In questo caso devi conoscere l'ID della tua categoria di prodotto (in realtà l'ID del termine della tassonomia). Quando modifichi una categoria, lo troverai nell'URL: .../edit-tags.php?action=edit&taxonomy=product_cat&tag_ID=42&post_type=product

21 ago 2015 08:35:33
0

Sto cercando di fare la stessa cosa

<?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', 'titolo sezione customizer', '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__( 'Categoria post per lo slider', 'olsen-light-child' ),
        'description'   => esc_html__( 'Seleziona la categoria da cui lo slider mostrerà i post. Se nessuna categoria è selezionata, lo slider sarà disabilitato.', 'olsen-light-child' ),
    ) ) );
}

add_action( 'customize_register', 'olsen_light_child_customize_register' );

ma quando visualizzo le impostazioni nella mia pagina frontale, molti elementi del mio sito scompaiono..., qualche idea, grazie

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