WordPress Directo
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting
No Result
View All Result
WordPress Directo
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting
No Result
View All Result
WordPress Directo
No Result
View All Result

8 códigos para extender las funcionalidades de WordPress

Jorge López by Jorge López
11 octubre 2017
in Código fuente
Reading Time: 5 mins read
0

Hace mucho tiempo que no os pongo por aquí códigos para agregar nuevas funcionalidades a tu sitio web desarrollado con WordPress. En este ocasión te traigo 8 snippets que te vendrán de perlas, si lo que quieres es tener nuevas características en tu CMS. Por regla general, tendrás que agregar los códigos en el archivo functions.php del tema actual, y los que no, te lo indico igualmente.

Shortcode para mostrar archivos externos

Si debes mostrar el contenido de ficheros externos dentro de tus posts y páginas, puedes hacerlo mediante un shortcode. Para ello introduce el siguiente código dentro del functions.php de tu tema.

function show_file_func( $atts ) {
 extract( shortcode_atts( array(
 'file' => ''
 ), $atts ) );
 
 if ($file!='')
 return @file_get_contents($file);
}
 
add_shortcode( 'show_file', 'show_file_func' );

Así es cómo se utilizaría el shortcode.

Artículos relacionados

Mostrar código en WordPress. ¿Cómo hacerlo bien?

14 junio 2017

Función comments_open()

5 mayo 2012

Errores comunes de WordPress y cómo resolverlos

14 octubre 2015

Estrategias efectivas contra el spam en comentarios: La técnica honeypot en WordPress

18 diciembre 2024
[show_file file="https://google.com"]

Eliminar la imagen destacada cuando elimines un post

Este código hará que se elimine la imagen destacada asociada a un post, cuando el post en cuestión se elimine. Inserta este código dentro del fichero functions.php del tema.

add_action( 'before_delete_post', 'wps_remove_attachment_with_post', 10 );
function wps_remove_attachment_with_post($post_id) {
 if(has_post_thumbnail( $post_id ))
 {
 $attachment_id = get_post_thumbnail_id( $post_id );
 wp_delete_attachment($attachment_id, true);
 }
}

Definir una imagen por defecto para tus imágenes destacadas

Este código te permite definir una imagen por defecto para aquellos posts en los que no hayas añadido una imagen por defecto.

Debes pegar este código en donde quieres mostrar la imagen destacada, o si no la hay, la imagen por defecto. Por regla general, tendrás que agregarlo al index.php o al single.php. Edita la línea 4 y reemplaza la URL con la URL de tu imagen por defecto.

<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
} else { ?>
<img src="<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" />
<?php } ?>

Mover los scripts y las hojas de estilo al footer

Si lo que quieres es mejorar la velocidad de carga de tu sitio web, una muy buena idea es la de mover los scripts y las hojas de estilo al footer. En este ejemplo puedes ver cómo hacerlo en WordPress, pero cualquier desarrollador con un poco de experiencia sabrá cómo modificar el código para trasladar dichas inserciones al final del documento.

Primero, abre tu fichero functions.php y pega el siguiente código.

/**
 * Filter HTML code and leave allowed/disallowed tags only
 *
 * @param string $text Input HTML code.
 * @param string $tags Filtered tags.
 * @param bool $invert Define whether should leave or remove tags.
 * @return string Filtered tags
 */
function theme_strip_tags_content($text, $tags = '', $invert = false) {

preg_match_all( '/<(.+?)[\s]*\/?[\s]*>/si', trim( $tags ), $tags );
 $tags = array_unique( $tags[1] );

if ( is_array( $tags ) AND count( $tags ) > 0 ) {
 if ( false == $invert ) {
 return preg_replace( '@<(?!(?:'. implode( '|', $tags ) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text );
 }
 else {
 return preg_replace( '@<('. implode( '|', $tags ) .')\b.*?>.*?</\1>@si', '', $text );
 }
 }
 elseif ( false == $invert ) {
 return preg_replace( '@<(\w+)\b.*?>.*?</\1>@si', '', $text );
 }

return $text;
}

/**
 * Generate script tags from given source code
 *
 * @param string $source HTML code.
 * @return string Filtered HTML code with script tags only
 */
function theme_insert_js($source) {

$out = '';

$fragment = new DOMDocument();
 $fragment->loadHTML( $source );

$xp = new DOMXPath( $fragment );
 $result = $xp->query( '//script' );

$scripts = array();
 $scripts_src = array();
 foreach ( $result as $key => $el ) {
 $src = $result->item( $key )->attributes->getNamedItem( 'src' )->value;
 if ( ! empty( $src ) ) {
 $scripts_src[] = $src;
 } else {
 $type = $result->item( $key )->attributes->getNamedItem( 'type' )->value;
 if ( empty( $type ) ) {
 $type = 'text/javascript';
 }

$scripts[$type][] = $el->nodeValue;
 }
 }

//used by inline code and rich snippets type like application/ld+json
 foreach ( $scripts as $key => $value ) {
 $out .= '<script type="'.$key.'">';

foreach ( $value as $keyC => $valueC ) {
 $out .= "\n".$valueC;
 }

$out .= '</script>';
 }

//external script
 foreach ( $scripts_src as $value ) {
 $out .= '<script src="'.$value.'"></script>';
 }

return $out;
}

Una vez hecho esto, edita el fichero header.php y reemplaza el tag wp_head() por esto:

<?php
ob_start();
wp_head();
$themeHead = ob_get_contents();
ob_end_clean();
define( 'HEAD_CONTENT', $themeHead );

$allowedTags = '<style><link><meta><title>';
print theme_strip_tags_content( HEAD_CONTENT, $allowedTags );
?>

Y finalmente, coloca el siguiente código dentro de tu archivo footer.php, justo antes del cierre del tag </body>.

<?php theme_insert_js( HEAD_CONTENT ); ?>

Permitir que solo el autor del post pueda contestar a los comentarios

Si por alguna razón quieres que solo el autor del contenido pueda responder a los comentarios que ha generado y nadie más, puedes hacerlo mediante un sencillo código. Para ello, y tal como hemos hecho en otras ocasiones, pega el siguiente código dentro del fichero functions.php.

add_action( 'pre_comment_on_post', 'wpq_pre_commenting' );

function wpq_pre_commenting( $pid ) {
 $parent_id = filter_input( INPUT_POST, 'comment_parent', FILTER_SANITIZE_NUMBER_INT );
 $post = get_post( $pid );
 $cuid = get_current_user_id();

if( ! is_null( $post ) && $post->post_author == $cuid && 0 == $parent_id ) {
 wp_die( 'Lo sentimos, solo el autor puede responder a los comentarios' );
 }
}

Mostrar la fecha de la última modificación del post

Si actualizas tus posts frecuentemente, lo suyo, y lo más relevante, es mostrar la fecha de la última modificación de los mismos. Solo tienes que pegar este código donde quieras que se muestre la fecha. La función debe utilizarse dentro del loop.

<p>Última modificación: <?php the_modified_date(); ?></p>

Programar tareas del cron con WordPress

Cron es una palabra técnica que se utiliza para aquellos comandos que se ejecutan a una hora programada o en intervalos regulares. Muchos servidores webs lo utilizan para realizar tareas de mantenimiento en el propio servidor, o, como he dicho antes, para ejecutar tareas programadas.

En WordPress también se utilizan para eventos programados, como por ejemplo vaciar la bandeja de spam de los comentarios. Aquí tienes un pequeño código que debes pegar en tu archivo functions.php, y te permitirá crear tareas que se ejecutarán mediante el cron de WordPress.

<?php
add_action('my_hourly_event', 'do_this_hourly');

function my_activation() {
 if ( !wp_next_scheduled( 'my_hourly_event' ) ) {
 wp_schedule_event(time(), 'hourly', 'my_hourly_event');
 }
}
add_action('wp', 'my_activation');

function do_this_hourly() {
 // hace algo cada hora
}
?>

Mostrar un aviso en los posts antiguos

Si en tu blog hablas sobre tecnología, lo más seguro es que tengas artículos antiguos que ya se habrán quedado desfasadillos. Puede ser muy buena idea, para aquellos posts viejos, mostrar a tus lectores un aviso que les indique que el post ya tiene un tiempo y que es posible que ya no sea muy útil.

Pega el siguiente código en el fichero single.php, dentro del loop. Edita el aviso en la línea 7 por el aviso que quieras dar a tus usuarios.

<?
$ageunix = get_the_time('U');
$days_old_in_seconds = ((time() - $ageunix));
$days_old = (($days_old_in_seconds/86400));

if ($days_old > 365) {
 echo '<div class="disclaimer">OJO: Este artículo tiene más de un año y puede que ya esté anticuado</div>'; 
} 
?>

Y hasta aquí nuestro artículo en el que te hemos mostrado 8 códigos para extender las funcionalidades de WordPress. Espero que te haya gustado y, si te ha resultado útil, no dudes en compartirlo en redes sociales.

Continue Reading
Tags: código fuentecódigossnippets
ShareTweetSendSharePin
Jorge López

Jorge López

Soy programador web y me gusta mucho el diseño gráfico, la fotografía y todo lo relacionado con las nuevas tecnologías. En mis ratos libres me encanta dibujar y escuchar música. ¡No podría vivir sin ella! Aparte soy un friki de las series...las devoro

Te puede interesar...

Noticias

Cómo eliminar la etiqueta hreflang en URLs con la meta tag noindex en WordPress

4 mayo 2025

Eliminar la etiqueta hreflang en páginas de WordPress que contienen la meta etiqueta noindex...

Código fuente

Programación Orientada a Objetos en PHP: Transformando el Desarrollo en WordPress

27 febrero 2025

La Programación Orientada a Objetos (OOP, por sus siglas en inglés) es un paradigma...

Plantillas

Uso de Propiedades Personalizadas de CSS con theme.json en WordPress

18 febrero 2025

El archivo theme.json en WordPress ha revolucionado el desarrollo de temas al permitir una...

Código fuente

Guía Completa de la API de Bloques en WordPress: Extiende las Capacidades del Editor

13 febrero 2025

La API de Bloques en WordPress es el principal mecanismo mediante el cual los...

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

WordPress Directo

WPDirecto.com es una revista especializada en WordPress y WooCommerce que ofrece una amplia gama de recursos, incluyendo tutoriales, análisis de plugins y plantillas, consejos de optimización y estrategias de SEO, para ayudar a los usuarios a mejorar y personalizar sus sitios web, manteniéndolos informados sobre las últimas novedades y tendencias en el mundo de WordPress.

Menu

  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting

Información

WPDirecto es un medio de Medios y Redes:
  • Artículos patrocinados
  • Servicio de diseño web
  • Contacto
  • Acerca de MyR
  • Política de privacidad y cookies
  • Aviso Legal

© 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.

No Result
View All Result
  • Tutoriales
  • Plugins
  • Plantillas
  • Optimización
  • SEO
  • WordPress Hosting

© 1995-2025 Color Vivo Internet, SLU (Medios y Redes Online).. Otros contenidos se cita fuente. Infraestructura cloud servidores dedicados de Stackscale.