Marketing de Conteúdo

WordPress: como listar páginas filhas usando um shortcode

Reconstruímos a hierarquia de sites para vários de nossos WordPress clientes, e uma das coisas que tentamos fazer é organizar as informações de forma eficiente. Para fazer isso, muitas vezes queremos criar uma página mestra e incluir um menu que liste automaticamente as páginas abaixo dela. Uma lista de páginas secundárias ou subpáginas.

Infelizmente, não há nenhuma função ou recurso inerente para fazer isso no WordPress, então desenvolvemos um shortcode para adicionar ao site do cliente. Veja como você pode usar o shortcode com todas as suas variáveis ​​preenchidas em uma postagem ou página do WordPress:

[listchildpages ifempty="No child pages found" order="ASC" orderby="title" ulclass="custom-ul-class" liclass="custom-li-class" aclass="custom-a-class" displayimage="yes" align="aligncenter"]

Divisão de uso:

  • ifempty="No child pages found": Este texto será exibido se não houver páginas filhas disponíveis.
  • order="ASC": classifica a lista de páginas filhas em ordem crescente.
  • orderby="title": Isso ordena as páginas secundárias por título.
  • ulclass="custom-ul-class": Aplica a classe CSS “custom-ul-class” ao <ul> elemento da lista.
  • liclass="custom-li-class": Aplica a classe CSS “custom-li-class” a cada <li> elemento na lista.
  • aclass="custom-a-class": Aplica a classe CSS “custom-a-class” a cada <a> (link) elemento na lista.
  • displayimage="yes": inclui a imagem em destaque de cada página secundária na lista.
  • align="aligncenter": Isso alinha as imagens em destaque no centro.

Insira este código de acesso diretamente na área de conteúdo de uma postagem ou página do WordPress onde deseja que a lista de páginas filhas apareça. Lembre-se de personalizar os valores de cada atributo para se adequar ao design e à estrutura do seu site WordPress.

Além disso, se você quiser pequeno excerto descrevendo cada página, o plug-in habilita trechos nas páginas para que você possa editar o conteúdo nas configurações da página.

Listar código curto de páginas secundárias

function add_shortcode_listchildpages($atts, $content = "") { 
    global $post; 
    $string = '';

    $atts = shortcode_atts(array(
        'ifempty' => '<p>No Records</p>',
        'order' => 'DESC',
        'orderby' => 'publish_date',
        'ulclass' => '',
        'liclass' => '',
        'aclass' => '',
        'displayimage' => 'no',
        'align' => 'alignleft'
    ), $atts, 'listchildpages');

    $args = array(
        'post_type' => 'page',
        'posts_per_page' => -1,
        'post_parent' => $post->ID,
        'orderby' => $atts['orderby'],
        'order' => $atts['order']
    );

    $parent = new WP_Query($args);

    if ($parent->have_posts()) {
        $string .= $content.'<ul class="'.$atts['ulclass'].'">';
        while ($parent->have_posts()) : $parent->the_post();
            $string .= '<li class="'.$atts['liclass'].'">';
            $true = array("y", "yes", "t", "true");
            $showimage = strtolower($atts['displayimage']);
            if (in_array($showimage, $true)) {
                if (has_post_thumbnail($post->ID)) {
                    $image_attributes = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'thumbnail'); 
                    $string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">';
                    $string .= '<img src="'.$image_attributes[0].'" width="'.$image_attributes[1].'" height="'.$image_attributes[2].'" alt="'.get_the_title().'" class="'.$atts['align'].'" /></a>';
                }
            }
            $string .= '<a class="'.$atts['aclass'].'" href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a>';
            if (has_excerpt($post->ID)) {
                $string .= ' - '.get_the_excerpt();
            }
            $string .= '</li>';
        endwhile;
        $string .= '</ul>';
    } else {
        $string = $atts['ifempty'];
    }

    wp_reset_postdata();

    return $string;
}
add_shortcode('listchildpages', 'add_shortcode_listchildpages');

A função add_shortcode_listchildpages adiciona um shortcode personalizado

No Records

, que você pode usar em postagens ou páginas do WordPress para exibir uma lista de páginas secundárias. Aqui está um resumo de como o código funciona:

  1. Variável de postagem global: A função começa declarando a variável global $post, que é usado para acessar informações sobre a postagem ou página atual no WordPress.
  2. Atributos de código curto: O shortcode_atts função configura valores padrão para os atributos de shortcode. Os usuários podem substituí-los ao inserir o código de acesso. Os atributos incluem:
    • ifempty: Mensagem a ser exibida se não houver páginas filhas.
    • order: Ordem das páginas filhas (ASC ou DESC).
    • orderby: Critérios para ordenar páginas filhas (por exemplo,publish_date).
    • ulclass: classe CSS para o <ul> elemento.
    • liclass: classe CSS para o <li> elementos.
    • aclass: classe CSS para o <a> elementos (âncora).
    • displayimage: se deseja exibir a imagem em destaque das páginas filhas.
    • align: Alinhamento da imagem em destaque.
  3. Argumentos de consulta: A função configura um WP_Query para recuperar todas as páginas filhas da página atual, classificadas de acordo com os atributos especificados.
  4. Gerando a lista:
    • Se forem encontradas páginas filhas, a função constrói uma lista HTML não ordenada (<ul>), com cada página filha representada por um item de lista (<li>).
    • Dentro de cada item da lista, a função verifica se a imagem em destaque deve ser exibida com base no displayimage atributo.
    • A função também cria um link para cada página secundária usando o <a> tag e, se disponível, adiciona o trecho da página secundária.
  5. Saída ou mensagem padrão: se não houver páginas filhas, a função gera a mensagem especificada pelo ifempty atributo.
  6. Redefinir dados de postagem: O wp_reset_postdata função redefine a consulta do WordPress, garantindo que o global $post o objeto é restaurado para a postagem da consulta principal original.
  7. Registro de código curto: Finalmente, o add_shortcode registros de função listchildpages como um novo shortcode, vinculando-o ao add_shortcode_listchildpages função, disponibilizando-a para uso em posts e páginas.

Esta função é útil para listar subpáginas dinamicamente em uma página pai, melhorando a navegação e a organização em um site WordPress. Eu recomendo adicioná-lo a um plugin personalizado se você quiser adicioná-lo ao seu site WordPress. Ou… você pode baixar o plugin que publiquei.

Listar plug-in de código de acesso de páginas filhas

Eu finalmente consegui empurrar o código para um plugin para torná-lo mais fácil de instalar e utilizar, e o Plug-in de shortcode List Child Pages foi aprovado pelo WordPress hoje! Faça o download e instale-o – se gostar, faça um comentário!

Plug-in WordPress para listar páginas filhas

Douglas Karr

Douglas Karr é CMO de AbrirINSIGHTS e o fundador da Martech Zone. Douglas ajudou dezenas de startups de MarTech bem-sucedidas, auxiliou na due diligence de mais de US$ 5 bilhões em aquisições e investimentos da Martech e continua a auxiliar empresas na implementação e automatização de suas estratégias de vendas e marketing. Douglas é um especialista e palestrante em transformação digital e MarTech reconhecido internacionalmente. Douglas também é autor publicado de um guia para leigos e de um livro sobre liderança empresarial.

Artigos Relacionados

Voltar ao topo botão
Fechar

Adblock detectado

Martech Zone é capaz de fornecer a você esse conteúdo sem nenhum custo porque monetizamos nosso site por meio de receita de anúncios, links de afiliados e patrocínios. Agradeceríamos se você removesse seu bloqueador de anúncios ao visualizar nosso site.