post
Obtendo listagem de categorias hierárquicas personalizadas com PHP + JetPlugins no WordPress
Publicado em: 22/04/2023 / Atualizado em: 26/08/2023
Caso esteja construindo um site em WordPress, principalmente usando Elementor usando o JetPlugins, e precise customizar a maneira como esses plugins trazem as categorias, esse post pode lhe ajudar.
Primeiro recomendo que instale o plugin WPCode para criarmos um shortcode rapido que possa ser usado no Elementor, como mostra abaixo:
Criando um shortcode novo em branco, cole o código abaixo:
<?php $taxonomy_slug = 'marca'; //Trocar pelo Slug da categoria $post_id = get_the_ID(); // obter o ID do post atual //Ou, caso esteja usando um loop (Listing Grid) com o Plugin JetEngine: //$post_id = do_shortcode('[jet_engine_data dynamic_field_post_object="post_id" dynamic_field_custom=""]'); $terms = get_the_terms($post_id, $taxonomy_slug); if ($terms && !is_wp_error($terms)) { echo '<ul class="ul-list-custom-categorias">'; wp_list_categories(array( 'taxonomy' => $taxonomy_slug, 'hide_empty' => false, 'hierarchical' => true, 'title_li' => '', 'include' => wp_list_pluck($terms, 'term_id'), 'walker' => new Custom_construct_link_category, )); echo '</ul>'; } class Custom_construct_link_category extends Walker_Category { function start_lvl(&$output, $depth = 0, $args = array()) { $indent = str_repeat("\t", $depth); $output .= "\n$indent<ul class='subcategories'>\n"; } function end_lvl(&$output, $depth = 0, $args = array()) { $indent = str_repeat("\t", $depth); $output .= "$indent</ul>\n"; } function start_el(&$output, $category, $depth = 0, $args = array(), $id = 0) { $cat_name = esc_attr($category->name); $cat_slug = esc_attr($category->slug); if($depth === 0) { // (0) Categoria principal / (1, 2, 3, etc...) Subcategoria em diante $link = '<a href="' . esc_url(get_term_link($category)) . '" class="a-link-custom-lvl-1">' . $cat_name . '</a>'; } else { $link = '<a href="' . esc_url(get_term_link($category)) . '" class="a-link-custom-lvl-2">' . $cat_name . '</a>'; } $output .= sprintf("\n<li>%s</li>", $link); } }
Pronto! Agora é só copiar o shortcode gerado pelo plugin, e colar em sua pagina personalizada com Elementor.
Publicações recomendadas:
Inscreva-se em Nossa News:
Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.
Link Curto para Compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/2723
ID de Referência: 2723
Sugira uma publicação
Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.