Probablemente estés familiarizado con el widget de Categorías en WordPress. Recientemente, uno de nuestros lectores nos preguntó si era posible mostrar las entradas recientes en un menú desplegable también. En este artículo, te mostraremos cómo mostrar las entradas recientes como un menú desplegable en WordPress.

¿Por qué y quién necesita las entradas recientes en un menú desplegable?
WordPress viene con un widget de entradas recientes incorporado que puedes agregar a cualquier barra lateral o área lista para widgets.
Este widget simplemente muestra una lista de las entradas recientes, y puedes elegir el número de entradas que deseas mostrar. Pero si deseas mostrar más de 5-10 entradas, la lista ocupará mucho espacio en tu barra lateral.
Algunos usuarios de WordPress pueden necesitar una forma compacta de mostrar las entradas recientes. En ese caso, usar menús desplegables o listas colapsables puede ayudarte a ahorrar espacio.
Echemos un vistazo a un par de formas diferentes de mostrar las entradas recientes como un menú desplegable en WordPress.
Mostrar las entradas recientes de WordPress en un menú desplegable simple (Código manual)
Este método utiliza la función incorporada wp_get_recent_posts. Todo lo que necesitas hacer es copiar y pegar el siguiente código en el archivo functions.php de tu tema o en un plugin específico del sitio.
function wpb_recentposts_dropdown() {
$string .= '<select id="rpdropdown">
<option value="" selected>Select a Post</option>';
$args = array( 'numberposts' => '5', 'post_status' => 'publish' );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= '<option value="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</option> ';
}
$string .= '</select>
<script type="text/javascript"> var urlmenu = document.getElementById( "rpdropdown" ); urlmenu.onchange = function() {
window.open( this.options[ this.selectedIndex ].value, "_self" );
};
</script>';
return $string;
}
add_shortcode('rp_dropdown', 'wpb_recentposts_dropdown');
add_filter('widget_text','do_shortcode');
Ahora puedes usar el shortcode [rp_dropdown] en tus publicaciones, páginas y widgets de texto de WordPress. Se verá así:

Añadir publicaciones recientes colapsables usando un plugin
El método anterior simplemente lista tus publicaciones recientes en un formulario desplegable. Otra forma de ahorrar espacio es añadiendo una lista colapsable de publicaciones recientes que se expande cuando los usuarios hacen clic en ella.
Lo primero que necesitas hacer es instalar y activar el plugin Collapse-O-Matic. Funciona directamente, y no hay configuraciones que debas ajustar.
El plugin simplemente te permite mostrar cualquier cosa en un menú colapsable usando un shortcode.
Antes de usar este plugin, necesitamos una forma de mostrar fácilmente las publicaciones recientes donde queramos. Simplemente añade este código al archivo functions.php de tu tema o a un plugin específico para tu sitio.
function wpb_recentposts() {
$string .= '<ul>';
$args = array( 'numberposts' => '5', 'post_status' => 'publish' );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= '<li><a href="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"].'</a></li> ';
}
$string .= '</ul>';
return $string;
}
add_shortcode('recentposts', 'wpb_recentposts');
add_filter('widget_text','do_shortcode');
Este código simplemente te permite mostrar una lista de publicaciones recientes usando el shortcode [recentposts].
Ahora añadiremos nuestro shortcode dentro del shortcode de Collapse-O-Matic para crear una lista colapsable de publicaciones recientes.
Simplemente añade el shortcode así:
[expand title="Publicaciones Recientes"][recentposts][/expand]
Puedes añadir este shortcode en un widget de texto, publicaciones o páginas de tu sitio de WordPress. Así es como se veía en nuestro sitio de prueba.

Eso es todo, esperamos que este artículo te haya ayudado a mostrar las publicaciones recientes como un menú desplegable en WordPress. También te puede interesar ver estos 6 consejos para crear un calendario editorial impactante en WordPress.
Si te gustó este artículo, suscríbete a nuestro Canal de YouTube para ver tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Mauro Vicariotto
Estimado autor,
hay un error tipográfico en la línea 2 de su función wpb_recentposts_dropdown():
debería ser " $string = … " en lugar de " $string .= … "
Soporte de WPBeginner
.= y = tienen usos ligeramente diferentes. En este caso de uso, no es un error tipográfico.
Administrador
Yvonne Manders
Cometi un error y lo resolví.
Soporte de WPBeginner
Glad you were able to solve the issue
Administrador
Yvonne Manders
Hola,
Instalé el collapse-o-mattic y pegué el código en el archivo functions.php.
Después de eso, pegué el shortcode [expand title=”Recent Posts”][recentposts][/expand] en un textwidget, pero no pasó nada.
¿Me falta algo?
Saludos cordiales, Yvonne
Soporte de WPBeginner
Querrás colocar el shortcode en el editor de texto en lugar del editor visual para asegurarte de que no haya estilos que impidan que el shortcode funcione.
Administrador
Erika
La línea 3 tiene un error. A la etiqueta de opción de cierre le falta su "/" de cierre. Esto está generando una opción en blanco en el menú.
Soporte de WPBeginner
Thank you for letting us know, the code should be fixed now
Administrador
Amjad
Hola. Usé el código anterior para mostrar todas mis publicaciones en un menú desplegable, pero no está ordenado. Tengo dos preguntas aquí:
1. ¿Cómo puedo ordenar las publicaciones por título?
2. ¿Cómo puedo mostrar publicaciones de una categoría específica en un menú desplegable en lugar de mostrar todas las publicaciones?
Soporte de WPBeginner
Para lo que parece que estás buscando, deberías echar un vistazo a nuestro otro tutorial aquí: https://www.wpbeginner.com/plugins/how-to-let-users-filter-posts-and-pages-in-wordpress/
Administrador
Rolando
¡Buen artículo! ¿Cómo se puede hacer por una categoría específica y no solo por todas tus categorías? Además, ¿se puede hacer alfabéticamente?
Farai Mugaviri
Muchas gracias por la gran ayuda. También quisiera mostrar las categorías en una lista desplegable, si puedes ayudar con eso... Pero ahora, si actualizo mi WordPress, ¿es posible? Vi en algún lugar que hablaban de desafíos al actualizar WordPress y el riesgo de perder datos debido a la codificación rígida de las funciones PHP.
Robert
¡Gran herramienta, gracias por eso!
¿Es posible ordenar la salida de las publicaciones en la lista en orden alfabético?
¡Gracias de antemano por tu respuesta!
Saludos,
Robert
Andre
¿Es posible mostrar el menú desplegable de publicaciones con un botón para enviar?
‘function wpb_recentposts_dropdown() {
$string .= ‘
Select your School’;
$args = array( ‘numberposts’ => ‘5’, ‘post_status’ => ‘publish’ );
$recent_posts = wp_get_recent_posts($args);
foreach( $recent_posts as $recent ){
$string .= ” . $recent[“post_title”].’ ‘;
}
$string .= ‘
BUSCAR ESCUELA AHORA
var urlmenu = document.getElementById( “submitschool” ); urlmenu.onclick = function() {
window.open( this.options[ this.selectedIndex ].value, “_self” );
};
‘;
return $string;
}
add_shortcode(‘rp_dropdown’, ‘wpb_recentposts_dropdown’);
add_filter(‘widget_text’,’do_shortcode’);’
Emily Johns
¡Contenido muy bueno! Buena lectura y fácil de entender.
NG SHAIKH
Es un artículo excelente. Los principiantes como yo podemos entender el poder de WordPress y sus plugins con este tipo de artículos.
Me gustaría que se escribieran algunos artículos para mostrar un mensaje en una página específica y no en todas las publicaciones y páginas.
También ayudaría a los principiantes si se escribieran algunos artículos para mostrar un formulario para la entrada del usuario que se pueda guardar en la base de datos.
Julie S
Me gusta mucho el menú desplegable de publicaciones recientes. ¿Cómo puedo controlar el ancho de este menú desplegable? Por defecto es demasiado largo para mi barra lateral.
Soporte de WPBeginner
Intenta ajustar el ancho usando CSS:
select#rp_dropdown { width:200px; }1-click Use in WordPress
Administrador