WordPress: como enumerar páxinas fillas usando un código curto
Reconstruímos a xerarquía de sitios para varios dos nosos WordPress clientes, e unha das cousas que intentamos é organizar a información de forma eficiente. Para iso, moitas veces queremos crear unha páxina mestra e incluír un menú que lista automaticamente as páxinas debaixo dela. Unha lista de páxinas fillas ou subpáxinas.
Desafortunadamente, non hai ningunha función ou función inherente para facelo dentro de WordPress, polo que desenvolvemos un código curto para engadir ao sitio do cliente. Aquí tes como podes usar o shortcode con todas as súas variables que se atopan nunha publicación ou páxina de 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"]
Desglose do uso:
ifempty="No child pages found"
: Este texto mostrarase se non hai páxinas fillas dispoñibles.order="ASC"
: Isto ordena a lista de páxinas fillas en orde ascendente.orderby="title"
: Isto ordena as páxinas fillas polo seu título.ulclass="custom-ul-class"
: aplica a clase CSS "custom-ul-class" ao<ul>
elemento da lista.liclass="custom-li-class"
: aplica a clase CSS "custom-li-class" a cada un<li>
elemento da lista.aclass="custom-a-class"
: Aplica a clase CSS "personalizado-a-clase" a cada un<a>
(ligazón) elemento da lista.displayimage="yes"
: Inclúe a imaxe destacada de cada páxina filla da lista.align="aligncenter"
: aliña as imaxes destacadas no centro.
Insira este código curto directamente na área de contido dunha publicación ou páxina de WordPress onde queres que apareza a lista de páxinas fillas. Lembra personalizar os valores de cada atributo para que se axusten ao deseño e á estrutura do teu sitio WordPress.
Ademais, se desexa un pequeno extracto ao describir cada páxina, o complemento habilita extractos en páxinas para que poida editar ese contido na configuración da páxina.
Lista de códigos curtos de páxinas fillas
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 función add_shortcode_listchildpages
engade un código curto personalizado
No Records
- Variable de publicación global: A función comeza declarando a variable global
$post
, que se usa para acceder a información sobre a publicación ou páxina actual dentro de WordPress. - Atributos de código curto: A
shortcode_atts
Esta función establece valores predeterminados para os atributos de código curto. Os usuarios poden anular estes cando insiran o código curto. Os atributos inclúen:ifempty
: Mensaxe para mostrar se non hai páxinas fillas.order
: Orde das páxinas fillas (ASC ou DESC).orderby
: Criterios para ordenar páxinas fillas (por exemplo, publish_date).ulclass
: Clase CSS para o<ul>
elemento.liclass
: Clase CSS para o<li>
elementos.aclass
: Clase CSS para o<a>
elementos (áncora).displayimage
: indica se mostrar a imaxe destacada das páxinas fillas.align
: Aliñación da imaxe destacada.
- Argumentos de consulta: A función configura a
WP_Query
para recuperar todas as páxinas fillas da páxina actual, ordenadas segundo os atributos especificados. - Xerando a Lista:
- Se se atopan páxinas fillas, a función constrúe unha lista HTML non ordenada (
<ul>
), con cada páxina secundaria representada por un elemento de lista (<li>
). - Dentro de cada elemento da lista, a función comproba se quere mostrar a imaxe destacada en función do
displayimage
atributo. - A función tamén crea unha ligazón a cada páxina filla usando o
<a>
etiqueta e, se está dispoñible, engade o extracto da páxina filla.
- Se se atopan páxinas fillas, a función constrúe unha lista HTML non ordenada (
- Mensaxe de saída ou predeterminada: Se non hai páxinas fillas, a función mostra a mensaxe especificada polo
ifempty
atributo. - Restablecer datos de publicación: A
wp_reset_postdata
función restablece a consulta de WordPress, garantindo que o global$post
restaurase o obxecto na publicación da consulta principal orixinal. - Rexistro de shortcode: Finalmente, o
add_shortcode
rexistros de funciónslistchildpages
como un novo código curto, vinculándoo aoadd_shortcode_listchildpages
función, facéndoo dispoñible para o seu uso en publicacións e páxinas.
Esta función é útil para enumerar subpáxinas de forma dinámica nunha páxina principal, mellorando a navegación e a organización dentro dun sitio de WordPress. Recomendo engadilo a un complemento personalizado se queres engadilo ao teu sitio de WordPress. Ou... podes descargar o complemento que publiquei.
Lista de páxinas secundarias Shortcode Plugin
Finalmente empecei a empuxar o código nun complemento para que fose máis doado de instalar e utilizar e do Lista un complemento de código abreviado de páxinas infantís foi aprobado por WordPress hoxe! Descárgueo e instáleo; se che gusta, fai unha revisión!