Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Copa WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

46 trucos extremadamente útiles para el archivo de funciones de WordPress

Nota editorial: Ganamos una comisión de los enlaces de socios en WPBeginner. Las comisiones no afectan a las opiniones o evaluaciones de nuestros editores. Más información sobre Proceso editorial.

¿Te preguntas qué puedes hacer con el archivo de funciones de WordPress?

Todos los temas de WordPress vienen con un archivo functions.php. Este archivo actúa como un plugin, permitiendo a los desarrolladores de temas y usuarios en general añadir código personalizado en WordPress fácilmente.

En este artículo, le mostraremos algunos trucos útiles para el archivo de funciones de WordPress.

Handy WordPress functions file tips and hacks

¿Qué es el archivo de funciones en WordPress?

El archivo functions. php es un archivo de tema de WordPress que viene con todos los temas de WordPress gratuitos y premium.

Actúa como un plugin y permite a los desarrolladores de temas definir características de los mismos. Los usuarios también pueden utilizarlo para añadir sus fragmentos de código personalizados en WordPress.

Sin embargo, guardar el código personalizado en el archivo de funciones de tu tema no es la mejor manera de guardar tus personalizaciones. Si actualizas tu tema, el archivo functions.php se sobrescribirá y perderás tus fragmentos de código personalizados.

En su lugar, recomendamos a todo el mundo que utilice WPCode, un plugin gratuito que le permite insertar fragmentos de código en su sitio web de WordPress sin necesidad de editar ningún tema, plugin o archivo del núcleo de WordPress.

La mejor parte es que todo su código personalizado se guarda por separado, por lo que cualquier actualización de WordPress no los quitará.

Además, el plugin WPCode cuenta con una amplia biblioteca de fragmentos de código preconfigurados (incluidos muchos de los que aparecen en esta lista). Puedes desplegar estos fragmentos de código con unos pocos clics.

wpcode library

Dicho esto, he aquí una lista de los elementos que trataremos en este artículo. Puede saltar a uno que le interese o simplemente seguir adelante:

Cómo añadir estos fragmentos de código a su sitio web

Antes de empezar, veamos cómo añadir los fragmentos de código de este artículo a su archivo de funciones de WordPress.

1. Añadir código personalizado al archivo de funciones utilizando WPCode (Recomendado)

Primero, necesitas instalar y activar el plugin WPCode. Para más detalles, consulta nuestra guía paso a paso sobre cómo instalar un plugin de WordPress.

Una vez activado, vaya a la página Fragmentos de código ” + Añadir fragmento. Verás la biblioteca de código de WPCode con muchos útiles fragmentos de código personalizados ya añadidos.

Add snippet

Si tu fragmento de código hace lo mismo que los fragmentos de la biblioteca, puedes probar con el que ya está añadido.

También puede enlazar el “fragmento en blanco” para seguir añadiendo su fragmento de código personalizado.

En la pantalla siguiente, ponga un título a su código personalizado. Puede ser cualquier cosa que le ayude a identificar lo que hace este fragmento de código.

Adding your custom code

A continuación, debe elegir el “Tipo de código”. Si está añadiendo un código que funciona en el archivo functions.php, entonces debe seleccionar ‘Fragmento de código PHP’.

A continuación, debe copiar y pegar su código personalizado en el cuadro “Vista previa del código”.

Por último, debe establecer su fragmento de código como “Activo” y hacer clic en el botón “Guardar fragmento de código”.

Activate and save

El fragmento de código guardado se ejecutará como si lo hubiera añadido al archivo functions.php.

Puede repetir el proceso para añadir más fragmentos de código cuando lo necesite. También puede desactivar un fragmento de código sin borrarlo.

2. Añadir código personalizado directamente al archivo de funciones

El método WPCode es siempre mejor que añadir código al archivo de funciones del tema.

Sin embargo, algunos usuarios pueden estar escribiendo código para el tema de WordPress personalizado de un cliente o simplemente prefieren añadir código al archivo functions.php.

En ese caso, a continuación le explicamos cómo puede añadir código al archivo functions.php de su tema de WordPress.

En primer lugar, conéctese a su sitio web WordPress mediante un cliente FTP. Una vez conectado, vaya a la carpeta /wp-content/themes/your-wordpress-theme/.

Edit functions.php file

Allí encontrará el archivo functions.php. Simplemente haga clic con el botón derecho y seleccione editar o descargue el archivo a su ordenador para editarlo.

Puedes editarlo con cualquier editor de texto plano como Notepad o TextEdit.

A continuación, desplázate hasta la parte inferior del archivo functions.php y pega allí tu fragmento de código. Puedes guardar los cambios y subir el archivo functions.php actualizado a la carpeta de tu tema.

Ahora puede visitar su sitio web WordPress para ver su código personalizado en acción.

Ahora, echemos un vistazo a 46 diferentes trucos útiles para el archivo de funciones de WordPress.

1. Quitar / eliminar el número de versión de WordPress

Siempre debe utilizar la última versión de WordPress. Sin embargo, es posible que desee quitar / eliminar el número de versión de WordPress de su sitio.

Simplemente añada este fragmento de código a su archivo de funciones o como un nuevo fragmento de WPCode:

function wpb_remove_version() {
return '';
}
add_filter('the_generator', 'wpb_remove_version');

Para obtener instrucciones detalladas, consulte nuestra guía sobre la forma correcta de quitar / eliminar el número de versión de WordPress.

¿Desea personalizar su área de administrador de WordPress? Añadir un logotipo personalizado al Escritorio es el primer paso del proceso.

En primer lugar, tendrás que subir tu logotipo personalizado a la carpeta de imágenes de tu tema como custom-logogo.png. Tu logotipo personalizado debe tener una proporción de 1:1 (una imagen cuadrada) en 16×16 píxeles.

Después, puedes añadir este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode:

function wpb_custom_logo() {
echo '
<style type="text/css">
#wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {
background-image: url(' . get_bloginfo('stylesheet_directory') . '/images/custom-logo.png) !important;
background-position: 0 0;
color:rgba(0, 0, 0, 0);
}
#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
background-position: 0 0;
}
</style>
';
}
//hook into the administrative header output
add_action('wp_before_admin_bar_render', 'wpb_custom_logo');

Para más detalles, consulte nuestra guía sobre cómo añadir un logotipo personalizado al Escritorio de WordPress.

3. Cambiar el pie de página en el panel de administrador de WordPress

El pie de página del área de administrador de WordPress muestra el mensaje ‘Gracias por crear con WordPress’. Puedes cambiarlo por el que quieras añadiendo este código:

function remove_footer_admin () {

echo 'Fueled by <a href="http://www.wordpress.org" target="_blank">WordPress</a> | WordPress Tutorials: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';

}

add_filter('admin_footer_text', 'remove_footer_admin');

No dudes en cambiar el texto y los enlaces que quieras añadir. Así es como se ve en nuestro sitio de prueba.

Admin footer

4. Añadir widgets personalizados Escritorio en WordPress

Probablemente haya visto los widgets que muchos plugins y temas añaden al escritorio de WordPress. Puedes añadir uno tú mismo pegando el siguiente código:

add_action('wp_dashboard_setup', 'my_custom_dashboard_widgets');

function my_custom_dashboard_widgets() {
global $wp_meta_boxes;

wp_add_dashboard_widget('custom_help_widget', 'Theme Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
echo '<p>Welcome to Custom Blog Theme! Need help? Contact the developer <a href="mailto:yourusername@gmail.com">here</a>. For WordPress Tutorials visit: <a href="https://www.wpbeginner.com" target="_blank">WPBeginner</a></p>';
}

Este es el aspecto que tendría:

Custom dashboard widget

Para más detalles, consulte nuestro tutorial sobre cómo añadir widgets personalizados al Escritorio de WordPress.

5. Cambiar el Gravatar por defecto en WordPress

¿Has visto el avatar del hombre misterioso que aparece por defecto en los blogs? Puedes sustituirlo fácilmente por tu propio avatar de marca personalizado.

Simplemente sube la imagen que quieras usar como avatar por defecto y añade este código a tu archivo de funciones o al plugin WPCode:

function wpb_custom_default_gravatar( $avatar_defaults ) {
	$myavatar = 'https://example.com/wp-content/uploads/2022/10/dummygravatar.png';
	$avatar_defaults[$myavatar] = 'Default Gravatar';
	return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'wpb_custom_default_gravatar' );

Ahora puedes dirigirte a la página Ajustes ” Discusión y seleccionar tu avatar por defecto.

Custom default gravatar

Para obtener instrucciones detalladas, consulte nuestra guía sobre cómo cambiar el gravatar por defecto en WordPress.

6. Fecha de copyright dinámica en el pie de página de WordPress

Puede añadir simplemente una fecha de copyright editando la plantilla de pie de página de su tema. Sin embargo, no mostrará cuándo comenzó su sitio, y no cambiará automáticamente al año siguiente.

Este código puede añadir una fecha de copyright dinámica en el pie de página de WordPress:

function wpb_copyright() {
global $wpdb;
$copyright_dates = $wpdb->get_results("
SELECT
YEAR(min(post_date_gmt)) AS firstdate,
YEAR(max(post_date_gmt)) AS lastdate
FROM
$wpdb->posts
WHERE
post_status = 'publish'
");
$output = '';
if($copyright_dates) {
$copyright = "© " . $copyright_dates[0]->firstdate;
if($copyright_dates[0]->firstdate != $copyright_dates[0]->lastdate) {
$copyright .= '-' . $copyright_dates[0]->lastdate;
}
$output = $copyright;
}
return $output;
}

Después de añadir esta función, tendrás que abrir tu archivo footer.php y añadir el siguiente código donde quieras mostrar la fecha dinámica de copyright:

<?php echo wpb_copyright(); ?>

Esta función busca la fecha de tu primera entrada y la fecha de tu última entrada. A continuación, devuelve los años donde se llama a la función.

Consejo: Si utiliza el plugin WPCode, puede combinar los dos fragmentos de código. A continuación, seleccione la ubicación “Pie de página de todo el sitio” en la sección “Inserción” de los ajustes del fragmento de código. Esto mostrará automáticamente la fecha de copyright en el pie de página sin necesidad de editar el archivo footer.php de tu tema.

Add to footer using WPCode

Para más detalles, consulte nuestra guía sobre cómo añadir fechas dinámicas de copyright en WordPress.

7. Cambiar aleatoriamente el color de fondo en WordPress

¿Quieres cambiar aleatoriamente el color de fondo de tu blog WordPress en cada visita y recarga de página? Aquí te explicamos cómo hacerlo fácilmente.

Primero, añade este código al archivo de funciones de tu tema o al plugin WPCode:

function wpb_bg() {
$rand = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
$color ='#'.$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].
$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];

echo $color; 
} 

A continuación, tendrás que editar el archivo header.php de tu tema. Busca la etiqueta <body> y sustitúyela por esta línea:

<body <?php body_class(); ?> style="background-color:<?php wpb_bg();?>">

Ahora puede guardar los cambios y visitar su sitio web para ver este código en acción.

Random background colors

Para más detalles y métodos alternativos, consulte nuestro tutorial sobre cómo cambiar aleatoriamente el color de fondo en WordPress.

8. Actualizar URL de WordPress

Si su página de acceso a WordPress se actualiza constantemente o no puede acceder al área de administrador, entonces necesita actualizar las URL de WordPress.

Una forma de hacerlo es utilizando el archivo wp-config.php. Sin embargo, si hace esto, no podrá establecer la dirección correcta en la página de ajustes. Los campos URL de WordPress y URL del sitio estarán bloqueados y no se podrán editar.

En su lugar, sólo tiene que añadir este código a su archivo de funciones para corregir esto:

update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );

No olvide sustituir ejemplo.com por su nombre de dominio.

Una vez conectado, puede ir a la página de ajustes del área de administrador de WordPress y establecer las URL.

Después de eso, usted debe quitar / eliminar el código que ha añadido al archivo de funciones o WPCode. De lo contrario, seguirá actualizando esas URL cada vez que se acceda a su sitio.

9. Añadir tamaños de imagen adicionales en WordPress

WordPress genera automáticamente varios tamaños de imagen cuando subes una imagen. También puedes crear tamaños de imagen adicionales para utilizarlos en tu tema.

Simplemente añada este código al archivo de funciones de su tema o como fragmento de código WPCode:

add_image_size( 'sidebar-thumb', 120, 120, true ); // Hard Crop Mode
add_image_size( 'homepage-thumb', 220, 180 ); // Soft Crop Mode
add_image_size( 'singlepost-thumb', 590, 9999 ); // Unlimited Height Mode

Este código crea tres nuevos tamaños de imagen de diferentes tamaños. No dudes en retocar el código para adaptarlo a tus necesidades.

A continuación, puede mostrar un tamaño de imagen en cualquier parte de su tema utilizando este código:

<?php the_post_thumbnail( 'homepage-thumb' ); ?>

Para obtener instrucciones detalladas, consulte nuestra guía sobre la creación de tamaños de imagen adicionales en WordPress.

10. Añadir nuevos menús de navegación a su tema

WordPress permite a los desarrolladores de temas definir menús de navegación y luego mostrarlos.

Puede añadir este código al archivo de funciones de su tema o como un nuevo fragmento de código WPCode para definir una nueva ubicación del menú en su tema:

function wpb_custom_new_menu() {
  register_nav_menu('my-custom-menu',__( 'My Custom Menu' ));
}
add_action( 'init', 'wpb_custom_new_menu' );

Ahora puede ir a Apariencia ” Menús en su escritorio de WordPress y ver ‘Mi menú personalizado’ como la opción de ubicación del tema.

Custom menu location

Nota: Este código también funcionará con temas de bloque con la característica de edición completa del sitio. Al añadirlo se activará la pantalla Menús en Apariencia.

Ahora necesitas añadir este código a tu tema donde quieras mostrar el menú de navegación:

 <?php
wp_nav_menu( array( 
    'theme_location' => 'my-custom-menu', 
    'container_class' => 'custom-menu-class' ) ); 
?>

Para obtener instrucciones detalladas, consulte nuestra guía sobre cómo añadir menús de navegación personalizados en temas de WordPress.

11. Añadir campos del perfil del autor

¿Quieres añadir campos adicionales a tus perfiles de autor en WordPress? Puedes hacerlo fácilmente añadiendo este código a tu archivo de funciones o como un nuevo fragmento de código WPCode:

function wpb_new_contactmethods( $contactmethods ) {
// Add Twitter
$contactmethods['twitter'] = 'Twitter';
//add Facebook
$contactmethods['facebook'] = 'Facebook';

return $contactmethods;
}
add_filter('user_contactmethods','wpb_new_contactmethods',10,1);

Este código añadirá campos de Twitter y Facebook a los perfiles de usuario en WordPress.

New profile fields

Ahora puede mostrar estos campos en su plantilla de autor de la siguiente manera:

<?php echo get_the_author_meta('twitter') ?>

También puede consultar nuestra guía sobre cómo añadir campos de perfil de usuario adicionales en el registro de WordPress.

12. Añadir áreas o barras laterales preparadas para widgets en temas de WordPress

Este es uno de los fragmentos de código más utilizados, y muchos desarrolladores ya saben acerca de cómo agregar áreas listas para widgets o barras laterales a los temas de WordPress. Pero merece estar en esta ficha para aquellos que no lo saben.

Puede pegar el siguiente código en su archivo functions.php o como un nuevo fragmento de código WPCode:

// Register Sidebars
function custom_sidebars() {

	$args = array(
		'id'            => 'custom_sidebar',
		'name'          => __( 'Custom Widget Area', 'text_domain' ),
		'description'   => __( 'A custom widget area', 'text_domain' ),
		'before_title'  => '<h3 class="widget-title">',
		'after_title'   => '</h3>',
		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
		'after_widget'  => '</aside>',
	);
	register_sidebar( $args );

}
add_action( 'widgets_init', 'custom_sidebars' );

Nota: Este código también funcionará con temas de bloque con la característica de edición completa del sitio. Al añadirlo se activará la pantalla Widgets en Apariencia.

Ahora puedes visitar la página Apariencia ” Widgets y ver tu nueva área de widgets personalizados.

Custom widget area

Para mostrar esta barra lateral o zona preparada para widgets en su sitio web, deberá añadir el siguiente código en la plantilla donde desee mostrarla:

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('custom_sidebar') ) : ?>
<!–Default sidebar info goes here–>
<?php endif; ?>

Para más detalles, consulte nuestra guía sobre cómo añadir áreas dinámicas listas para widgets y barras laterales en WordPress.

13. Manipular el pie de página del feed RSS

¿Has visto blogs que añaden sus anuncios en sus feeds RSS debajo de cada entrada? Puedes conseguirlo fácilmente con una simple función. Sólo tienes que pegar el siguiente código:

function wpbeginner_postrss($content) {
if(is_feed()){
$content = 'This post was written by Syed Balkhi '.$content.'Check out WPBeginner';
}
return $content;
}
add_filter('the_excerpt_rss', 'wpbeginner_postrss');
add_filter('the_content', 'wpbeginner_postrss');

Para más información, consulte nuestra guía sobre cómo añadir contenido y manipular completamente sus feeds RSS.

14. Añadir imágenes destacadas a los feeds RSS

Las miniaturas de entradas o las imágenes destacadas suelen mostrarse solo dentro del diseño de su sitio. Puede ampliar fácilmente esa funcionalidad a su feed RSS con el siguiente código:

function rss_post_thumbnail($content) {
global $post;
if(has_post_thumbnail($post->ID)) {
$content = '<p>' . get_the_post_thumbnail($post->ID) .
'</p>' . get_the_content();
}
return $content;
}
add_filter('the_excerpt_rss', 'rss_post_thumbnail');
add_filter('the_content_feed', 'rss_post_thumbnail');

Para más detalles, consulte nuestra guía sobre cómo añadir miniaturas de entradas a su feed RSS de WordPress.

15. Ocultar errores de acceso en WordPress

Los hackers pueden utilizar los errores de acceso para adivinar si han introducido un nombre de usuario o una contraseña incorrectos. Al ocultar los errores de acceso en WordPress, puede hacer que su área de acceso y el sitio web de WordPress sean más seguros.

Simplemente añada el siguiente código al archivo de funciones de su tema o como un nuevo fragmento de código WPCode:

function no_wordpress_errors(){
  return 'Something is wrong!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

Ahora, los usuarios verán un mensaje genérico cuando introduzcan un nombre de usuario o una contraseña incorrectos.

Custom login errors

Para más información, consulte nuestro tutorial sobre cómo desactivar las sugerencias de acceso en los mensajes de error de WordPress.

16. Desactivar el acceso por correo electrónico en WordPress

WordPress permite a los usuarios acceder con su nombre de usuario o dirección de correo electrónico. Puede desactivar fácilmente el acceso por correo electrónico en WordPress añadiendo este código a su archivo de funciones o como un nuevo fragmento de código WPCode:

remove_filter( 'authenticate', 'wp_authenticate_email_password', 20 );

Para más información, consulte nuestra guía sobre cómo desactivar la característica de acceder / acceder por correo electrónico en WordPress.

17. Desactivar la característica de búsqueda en WordPress

Si desea desactivar la característica de búsqueda de su sitio WordPress, simplemente añada este código a su archivo de funciones o en un nuevo fragmento de código WPCode:

function wpb_filter_query( $query, $error = true ) {
if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;
if ( $error == true )
$query->is_404 = true;
}}

Este código simplemente desactiva la consulta de búsqueda modificándola y devolviendo un error 404 en lugar de los resultados de la búsqueda.

Para más información, consulte nuestro tutorial sobre cómo desactivar la característica de búsqueda de WordPress.

Consejo profesional: En lugar de renunciar a la búsqueda en WordPress, te recomendamos que pruebes SearchWP. Es el mejor plugin de búsqueda de WordPress del mercado que te permite añadir una característica de búsqueda potente y personalizable a tu sitio web.

18. Retrasar entradas en feed RSS

A veces puede publicar un artículo con un error gramatical o una falta de ortografía.

El error se activa y se distribuye a los suscriptores de su feed RSS. Si tiene suscriptores de correo electrónico en su blog de WordPress, entonces esos suscriptores también recibirán un aviso.

Simplemente añade este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode para retrasar entradas en tu feed RSS:

function publish_later_on_feed($where) {

	global $wpdb;

	if ( is_feed() ) {
		// timestamp in WP-format
		$now = gmdate('Y-m-d H:i:s');

		// value for wait; + device
		$wait = '10'; // integer

		// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
		$device = 'MINUTE'; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR

		// add SQL-sytax to default $where
		$where .= " AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, '$now') > $wait ";
	}
	return $where;
}

add_filter('posts_where', 'publish_later_on_feed');

En este código, usamos 10 minutos como $espera o tiempo de retardo. No dudes en cambiarlo por cualquier número de minutos que desees.

Para conocer el método del plugin y obtener más información, consulte nuestra guía detallada sobre cómo retrasar la aparición de entradas en el feed RSS de WordPress.

19. Cambiar Leer más texto para extractos en WordPress

¿Quieres cambiar el texto que aparece después del extracto en tus entradas? Simplemente añade este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode:

function modify_read_more_link() {
    return '<a class="more-link" href="' . get_permalink() . '">Your Read More Link Text</a>';
}
add_filter( 'the_content_more_link', 'modify_read_more_link' );

20. Desactivar feeds RSS en WordPress

No todos los sitios web necesitan feeds RSS. Si desea desactivar los feeds RSS en su sitio de WordPress, añada este código al archivo de funciones de su tema o como un nuevo fragmento de código WPCode:

function new_excerpt_more($more) {
 global $post;
 return '<a class="moretag" 
 href="'. get_permalink($post->ID) . '">Your Read More Link Text</a>';
}
add_filter('excerpt_more', 'new_excerpt_more');

Para conocer el método del plugin y obtener más información, consulte nuestra guía sobre cómo desactivar feeds RSS en WordPress.

21. Cambiar la longitud del extracto en WordPress

WordPress limita la longitud de los extractos a 55 palabras. Puedes añadir este código a tu archivo de funciones o como un nuevo fragmento de código WPCode si necesitas cambiarlo:

function new_excerpt_length($length) {
return 100;
}
add_filter('excerpt_length', 'new_excerpt_length');

Sólo tiene que cambiar 100 por el número de palabras que desea mostrar en los extractos.

Para métodos alternativos, puede consultar nuestra guía sobre cómo personalizar extractos de WordPress (sin necesidad de código).

22. Añadir un usuario administrador en WordPress

Si ha olvidado su contraseña y correo electrónico de WordPress, puede añadir un usuario administrador añadiendo este código al archivo de funciones de su tema mediante un cliente FTP:

function wpb_admin_account(){
$user = 'Username';
$pass = 'Password';
$email = 'email@domain.com';
if ( !username_exists( $user )  && !email_exists( $email ) ) {
$user_id = wp_create_user( $user, $pass, $email );
$user = new WP_User( $user_id );
$user->set_role( 'administrator' );
} }
add_action('init','wpb_admin_account');

No olvide rellenar los campos de nombre de usuario, contraseña y correo electrónico.

Importante: Una vez que acceda a su sitio WordPress, no olvide borrar el código de su archivo de funciones.

Para más información sobre este debate, eche un vistazo a nuestro tutorial sobre cómo añadir un usuario administrador en WordPress mediante FTP.

23. Desactivar el conmutador de idiomas en la página de acceso

Si tiene un sitio web multilingüe, WordPress muestra un selector de idioma en la página de acceso. Puedes desactivarlo fácilmente añadiendo el siguiente código a tu archivo functions.php o como un nuevo fragmento de código WPCode:

add_filter( 'login_display_language_dropdown', '__return_false' );

24. Mostrar el número total de usuarios registrados en WordPress

¿Quieres mostrar el número total de usuarios registrados en tu sitio WordPress? Simplemente añade este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode:

function wpb_user_count() {
$usercount = count_users();
$result = $usercount['total_users'];
return $result;
}
// Creating a shortcode to display user count
add_shortcode('user_count', 'wpb_user_count');

Este código crea un shortcode que le permite mostrar el número total de usuarios registrados en su sitio.

Ahora sólo tienes que añadir el shortcode [user_count ] a tu entrada o página donde quieras mostrar el número total de usuarios.

Para obtener más información y un método de plugin, consulte nuestro tutorial sobre cómo mostrar el número total de usuarios registrados en WordPress.

25. Excluir categorías específicas del feed RSS

¿Quieres excluir categorías específicas de tu feed RSS de WordPress? Puedes añadir este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode:

function exclude_category($query) {
	if ( $query->is_feed ) {
		$query->set('cat', '-5, -2, -3');
	}
return $query;
}
add_filter('pre_get_posts', 'exclude_category');

26. Desactivar enlaces URL en los comentarios de WordPress

Por defecto, WordPress convierte una URL en un enlace clicable en los comentarios.

Puede evitarlo añadiendo el siguiente código a su archivo de funciones o como un nuevo fragmento de código WPCode:

remove_filter( 'comment_text', 'make_clickable', 9 );

Para más detalles, consulte nuestro artículo sobre cómo desactivar el enlace automático en los comentarios de WordPress.

27. Añadir clases CSS pares e impares a entradas de WordPress

Es posible que haya visto temas de WordPress que utilizan una clase par o impar para los comentarios de WordPress. Ayuda a los usuarios a visualizar dónde acaba un comentario y empieza el siguiente.

Puede utilizar la misma técnica para sus entradas de WordPress. Resulta estéticamente agradable y ayuda a los usuarios a explorar rápidamente páginas con mucho contenido.

Simplemente añada este código al archivo de funciones de su tema:

function oddeven_post_class ( $classes ) {
   global $current_class;
   $classes[] = $current_class;
   $current_class = ($current_class == 'odd') ? 'even' : 'odd';
   return $classes;
}
add_filter ( 'post_class' , 'oddeven_post_class' );
global $current_class;
$current_class = 'odd';

Este código simplemente añade una clase par o impar a las entradas de WordPress. Ahora puede añadir CSS personalizado para darles un estilo diferente.

Aquí tienes un ejemplo de código que te ayudará a empezar:

.even {
background:#f0f8ff;
}
.odd {
 background:#f4f4fb;
}

El resultado final será algo parecido a esto:

Alternating background colors

¿Necesitas instrucciones más detalladas? Echa un vistazo a nuestra guía práctica sobre cómo añadir clases impares/pares a tus entradas en temas de WordPress.

28. Añadir tipos de archivos adicionales para ser subidos en WordPress

Por defecto, WordPress permite subir un número limitado de los tipos de archivo más utilizados. Sin embargo, puedes ampliarlo para permitir otros tipos de archivo.

Sólo tienes que añadir este código al archivo de funciones de tu tema:

function my_myme_types($mime_types){
    $mime_types['svg'] = 'image/svg+xml'; //Adding svg extension
    $mime_types['psd'] = 'image/vnd.adobe.photoshop'; //Adding photoshop files
    return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);

Este código le permite subir archivos SVG y PSD a WordPress.

Tendrá que encontrar los tipos mime para los tipos de archivo que desea permitir y luego utilizarlos en el código.

Para más información sobre este debate, compruebe nuestro tutorial sobre cómo añadir tipos de archivo adicionales para ser subidos en WordPress.

WordPress utiliza por defecto una dirección de correo electrónico inexistente (wordpress@yourdomain.com) para enviar los correos electrónicos salientes.

Esta dirección de correo electrónico podría ser marcada como Spam por los proveedores de servicios de correo electrónico.

Usar el plugin WP Mail SMTP es la forma correcta de corregir esto.

WP Mail SMTP

Corrige los problemas de entrega de correo electrónico y le permite elegir una dirección de correo electrónico real para enviar sus mensajes de correo electrónico de WordPress.

Para obtener más información, consulte nuestra guía práctica sobre cómo corregir el problema de no envío de correo electrónico de WordPress.

Por otro lado, si desea cambiar rápidamente esto a una dirección de correo electrónico real, entonces puede añadir el siguiente código en su archivo de funciones o como un nuevo fragmento de código WPCode:

// Function to change email address
function wpb_sender_email( $original_email_address ) {
    return 'tim.smith@example.com';
}
 
// Function to change sender name
function wpb_sender_name( $original_email_from ) {
    return 'Tim Smith';
}
 
// Hooking up our functions to WordPress filters 
add_filter( 'wp_mail_from', 'wpb_sender_email' );
add_filter( 'wp_mail_from_name', 'wpb_sender_name' );

No olvides sustituir la dirección electrónica y el nombre por tus propios datos.

El problema con este método es que WordPress sigue utilizando la función mail() para enviar correos electrónicos, y lo más probable es que dichos correos acaben en Spam.

Para obtener mejores alternativas, consulte nuestro tutorial sobre cómo cambiar el nombre del remitente en los correos electrónicos salientes de WordPress.

30. Añadir un cuadro de información del autor en entradas de WordPress

Si tienes un sitio con varios autores y quieres mostrar las biografías de los autores al final de las entradas, puedes probar este método.

Comience añadiendo este código a su archivo de funciones o como un nuevo fragmento de código WPCode:

function wpb_author_info_box( $content ) {

global $post;

// Detect if it is a single post with a post author
if ( is_single() && isset( $post->post_author ) ) {

// Get author's display name
$display_name = get_the_author_meta( 'display_name', $post->post_author );

// If display name is not available then use nickname as display name
if ( empty( $display_name ) )
$display_name = get_the_author_meta( 'nickname', $post->post_author );

// Get author's biographical information or description
$user_description = get_the_author_meta( 'user_description', $post->post_author );

// Get author's website URL
$user_website = get_the_author_meta('url', $post->post_author);

// Get link to the author archive page
$user_posts = get_author_posts_url( get_the_author_meta( 'ID' , $post->post_author));
	
// Get User Gravatar
$user_gravatar =  get_avatar( get_the_author_meta( 'ID' , $post->post_author) , 90 );

if ( ! empty( $display_name ) )

$author_details = '<p class="author_name">About ' . $display_name . '</p>';

if ( ! empty( $user_description ) )
// Author avatar and bio will be displayed if author has filled in description. 

$author_details .= '<p class="author_details">' . $user_gravatar . nl2br( $user_description ). '</p>';

$author_details .= '<p class="author_links"><a href="'. $user_posts .'">View all posts by ' . $display_name . '</a>';  

// Check if author has a website in their profile
if ( ! empty( $user_website ) ) {

// Display author website link
$author_details .= ' | <a href="' . $user_website .'" target="_blank" rel="nofollow noopener">Website</a></p>';

} else {
// if there is no author website then just close the paragraph
$author_details .= '</p>';
}

// Pass all this info to post content
$content = $content . '<footer class="author_bio_section" >' . $author_details . '</footer>';
}
return $content;
}

// Add our function to the post content filter
add_action( 'the_content', 'wpb_author_info_box' );

// Allow HTML in author bio section
remove_filter('pre_user_description', 'wp_filter_kses');

A continuación, tendrá que añadir algo de CSS personalizado para que tenga mejor aspecto.

Puede utilizar este ejemplo de CSS como punto de partida:

.author_bio_section{
background: none repeat scroll 0 0 #F5F5F5;
padding: 15px;
border: 1px solid #ccc;
}

.author_name{
font-size:16px;
font-weight: bold;
}

.author_details img {
border: 1px solid #D8D8D8;
border-radius: 50%;
float: left;
margin: 0 10px 10px 0;
}

Este es el aspecto que tendrá su cuadro de autor:

Author bio box

Para un método de plugin e instrucciones más detalladas, compruebe nuestro artículo sobre cómo añadir una caja de información del autor en entradas de WordPress.

31. Desactivar XML-RPC en WordPress

XML-RPC es un método que permite a aplicaciones de terceros comunicarse con su sitio WordPress de forma remota. Esto puede causar problemas de seguridad y puede ser explotado por hackers.

Para desactivar XML-RPC en WordPress, añada el siguiente código a su archivo de funciones o como un nuevo fragmento de código WPCode:

add_filter('xmlrpc_enabled', '__return_false');

Para más información, puede leer nuestro artículo sobre cómo desactivar XML-RPC en WordPress.

32. Enlazar automáticamente imágenes destacadas a entradas

Si tu tema de WordPress no enlaza automáticamente las imágenes destacadas con los artículos completos, puedes probar este método.

Simplemente añade este código al archivo de funciones de tu tema o como un nuevo fragmento de código WPCode:

function wpb_autolink_featured_images( $html, $post_id, $post_image_id ) {

If (! is_singular()) { 

$html = '<a href="' . get_permalink( $post_id ) . '" title="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
return $html;

} else { 

return $html;

}

}
add_filter( 'post_thumbnail_html', 'wpb_autolink_featured_images', 10, 3 );

Quizás quieras leer nuestro artículo sobre cómo enlazar automáticamente imágenes destacadas a entradas en WordPress.

33. Desactivar el Editor de Bloques en WordPress

WordPress utiliza un editor moderno e intuitivo para escribir contenidos y editar tu sitio web. Este editor utiliza bloques para los elementos de estructura / disposición / diseño / plantilla más utilizados.

Sin embargo, es posible que necesite utilizar el antiguo Editor clásico en algunos casos.

La forma más sencilla de desactivar el editor de bloques es utilizando el plugin Classic Editor. Sin embargo, si no desea utilizar un plugin separado, sólo tiene que añadir el siguiente código a su archivo de funciones o como un nuevo fragmento de código WPCode:

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

Para más detalles, consulte nuestro tutorial sobre cómo desactivar el Editor de bloques y utilizar el Editor clásico.

34. Desactivar widgets de bloque en WordPress

WordPress pasó de los widgets clásicos a los widgets de bloque en WordPress 5.8. Los nuevos widgets de bloque son más fáciles de usar y ofrecen un mayor control del diseño que los widgets clásicos.

Sin embargo, algunos usuarios pueden seguir queriendo utilizar widgets clásicos. En ese caso, puede utilizar el siguiente código en el archivo de funciones de su tema o como un nuevo fragmento de código WPCode:

add_filter( 'use_widgets_block_editor', '__return_false' );

Para más detalles, consulte nuestro artículo sobre cómo desactivar los bloques de widgets (restaurar los widgets clásicos).

35. Mostrar la fecha de última actualización en WordPress

Cuando los visitantes ven una entrada o página en su blog de WordPress, su tema de WordPress mostrará la fecha en que se publicó la entrada. Esto está bien para la mayoría de los blogs y sitios web estáticos.

Sin embargo, WordPress también es utilizado por sitios web en los que los artículos antiguos se actualizan con regularidad. En estas publicaciones, mostrar la fecha y hora en que la entrada se modificó por última vez es esencial.

Last updated date

Puede mostrar la última fecha de actualización utilizando el siguiente código en el archivo de funciones de su tema o como un nuevo fragmento de WPCode:

$u_time          = get_the_time( 'U' );
$u_modified_time = get_the_modified_time( 'U' );
// Only display modified date if 24hrs have passed since the post was published.
if ( $u_modified_time >= $u_time + 86400 ) {

	$updated_date = get_the_modified_time( 'F jS, Y' );
	$updated_time = get_the_modified_time( 'h:i a' );

	$updated = '<p class="last-updated">';

	$updated .= sprintf(
	// Translators: Placeholders get replaced with the date and time when the post was modified.
		esc_html__( 'Last updated on %1$s at %2$s' ),
		$updated_date,
		$updated_time
	);
	$updated .= '</p>';

	echo wp_kses_post( $updated );
}

Para métodos alternativos y más detalles, consulte nuestra guía sobre cómo mostrar la última fecha de actualización en WordPress.

36. Utilice minúsculas para las subidas de archivos

Si gestiona un sitio web con varios autores, éstos podrán subir imágenes con nombres de archivo en mayúsculas y minúsculas.

Añadiendo el siguiente código se garantiza que todos los nombres de archivo estén en minúsculas:

add_filter( 'sanitize_file_name', 'mb_strtolower' );

Nota: El código no cambiará los nombres de archivo de las subidas existentes. Para métodos alternativos, vea nuestro tutorial sobre cómo renombrar imágenes y archivos de medios en WordPress.

37. Desactivar la barra de administrador de WordPress en la portada / vista pública

Por defecto, WordPress muestra la barra de administrador en la parte superior cuando un usuario conectado visita su sitio web.

Puede desactivar la barra de administrador para todos los usuarios excepto los administradores del sitio. Simplemente añada el siguiente código a su archivo de funciones o como un nuevo fragmento de código WPCode:

/* Disable WordPress Admin Bar for all users */
add_filter( 'show_admin_bar', '__return_false' );

Para más detalles, consulte nuestra guía sobre cómo desactivar la barra de administrador de WordPress para todos los usuarios excepto los administradores.

38. Cambiar el texto del administrador Hola en el área de administración

WordPress muestra el saludo “Hola, administrador” en el escritorio de WordPress. Admin’ se sustituye por el nombre del usuario conectado.

Howdy greeting

Puedes cambiar el saludo por defecto por el tuyo propio añadiendo el siguiente código en tu archivo de funciones o como un nuevo fragmento de código WPCode:

function wpcode_snippet_replace_howdy( $wp_admin_bar ) {

	// Edit the line below to set what you want the admin bar to display intead of "Howdy,".
	$new_howdy = 'Welcome,';

	$my_account = $wp_admin_bar->get_node( 'my-account' );
	$wp_admin_bar->add_node(
		array(
			'id'    => 'my-account',
			'title' => str_replace( 'Howdy,', $new_howdy, $my_account->title ),
		)
	);
}

add_filter( 'admin_bar_menu', 'wpcode_snippet_replace_howdy', 25 );

Para más detalles, consulte nuestro artículo sobre cómo cambiar el mensaje ‘Hola administrador’ en WordPress.

39. Desactivar la edición de código en el editor de bloques

El editor de bloques le permite cambiar al editor de código. Esto resulta útil si necesita añadir código HTML manualmente.

Sin embargo, es posible que desee mantener esta característica limitada a los administradores del sitio.

Puede añadir el siguiente código a su archivo de funciones o como fragmento de código WPCode para conseguirlo:

add_filter( 'block_editor_settings_all', function ( $settings ) {
	
	$settings['codeEditingEnabled'] = current_user_can( 'manage_options' );

	return $settings;
} );

40. Desactivar Plugins / Editor de archivos de temas

WordPress viene con un editor integrado donde puedes editar los archivos de los plugins. Puedes verlo yendo a la página Plugins ” Editor de archivos de plugins.

Plugin file editor in WordPress

Del mismo modo, WordPress también incluye un editor de archivos para temas clásicos en Apariencia ” Editor de archivos de temas.

Nota: Si utiliza un tema en bloque, el editor de archivos de temas no estará visible.

Theme file editor

No recomendamos el uso de estos editores para realizar cambios en su tema o plugin. Un pequeño error en el código puede hacer que tu sitio web sea inaccesible para todos los usuarios.

Para desactivar el editor de plugins/temas, añada el siguiente código a su archivo de funciones o como fragmento de código WPCode:

// Disable the Plugin and Theme Editor
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
	define( 'DISALLOW_FILE_EDIT', true );
}

Para más detalles, consulte nuestra guía práctica sobre cómo desactivar el editor de plugins/temas en WordPress.

41. Desactivar correos electrónicos de aviso de nuevo usuario

Por defecto, WordPress envía un aviso por correo electrónico cuando un nuevo usuario se une a su sitio web de WordPress.

Si tiene un sitio web de membresía en WordPress o requiere que los usuarios se registren, recibirá un aviso cada vez que un usuario se una a su sitio web.

Para desactivar estos avisos, puede añadir lo siguiente a su archivo de funciones o como un nuevo fragmento de código WPCode:

function wpcode_send_new_user_notifications( $user_id, $notify = 'user' ) {
	if ( empty( $notify ) || 'admin' === $notify ) {
		return;
	} elseif ( 'both' === $notify ) {
		// Send new users the email but not the admin.
		$notify = 'user';
	}
	wp_send_new_user_notifications( $user_id, $notify );
}

add_action(
	'init',
	function () {
		// Disable default email notifications.
		remove_action( 'register_new_user', 'wp_send_new_user_notifications' );
		remove_action( 'edit_user_created_user', 'wp_send_new_user_notifications' );

		// Replace with custom function that only sends to user.
		add_action( 'register_new_user', 'wpcode_send_new_user_notifications' );
		add_action( 'edit_user_created_user', 'wpcode_send_new_user_notifications', 10, 2 );
	}
);

Para más detalles, consulte nuestra guía práctica sobre cómo desactivar los avisos de correo electrónico de nuevos usuarios en WordPress.

42. Desactivar avisos automáticos de actualización por correo electrónico

Ocasionalmente, WordPress puede instalar automáticamente actualizaciones de seguridad y mantenimiento o actualizar un plugin con una vulnerabilidad crítica.

Envía un aviso automático de actualización por correo electrónico después de cada actualización. Si gestiona varios sitios web de WordPress, es posible que reciba varios correos electrónicos de este tipo.

Puede añadir este código a su archivo de funciones o como un nuevo fragmento de código WPCode para desactivar estos avisos por correo electrónico:

/ Disable auto-update emails.
add_filter( 'auto_core_update_send_email', '__return_false' );

// Disable auto-update emails for plugins.
add_filter( 'auto_plugin_update_send_email', '__return_false' );

// Disable auto-update emails for themes.
add_filter( 'auto_theme_update_send_email', '__return_false' );

Para obtener más información, consulte nuestro artículo sobre cómo desactivar los correos electrónicos de actualización automática en WordPress.

43. Añadir un enlace para duplicar fácilmente una entrada

¿Alguna vez has deseado poder copiar todo el contenido de una entrada rápidamente para editarlo sin tocar la entrada publicada?

El siguiente fragmento de código añadirá una opción para duplicar fácilmente una entrada con todo su contenido:

// Add duplicate button to post/page list of actions.
add_filter( 'post_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );
add_filter( 'page_row_actions', 'wpcode_snippet_duplicate_post_link', 10, 2 );

// Let's make sure the function doesn't already exist.
if ( ! function_exists( 'wpcode_snippet_duplicate_post_link' ) ) {
	/**
	 * @param array   $actions The actions added as links to the admin.
	 * @param WP_Post $post The post object.
	 *
	 * @return array
	 */
	function wpcode_snippet_duplicate_post_link( $actions, $post ) {

		// Don't add action if the current user can't create posts of this post type.
		$post_type_object = get_post_type_object( $post->post_type );

		if ( null === $post_type_object || ! current_user_can( $post_type_object->cap->create_posts ) ) {
			return $actions;
		}


		$url = wp_nonce_url(
			add_query_arg(
				array(
					'action'  => 'wpcode_snippet_duplicate_post',
					'post_id' => $post->ID,
				),
				'admin.php'
			),
			'wpcode_duplicate_post_' . $post->ID,
			'wpcode_duplicate_nonce'
		);

		$actions['wpcode_duplicate'] = '<a href="' . $url . '" title="Duplicate item" rel="permalink">Duplicate</a>';

		return $actions;
	}
}

/**
 * Handle the custom action when clicking the button we added above.
 */
add_action( 'admin_action_wpcode_snippet_duplicate_post', function () {

	if ( empty( $_GET['post_id'] ) ) {
		wp_die( 'No post id set for the duplicate action.' );
	}

	$post_id = absint( $_GET['post_id'] );

	// Check the nonce specific to the post we are duplicating.
	if ( ! isset( $_GET['wpcode_duplicate_nonce'] ) || ! wp_verify_nonce( $_GET['wpcode_duplicate_nonce'], 'wpcode_duplicate_post_' . $post_id ) ) {
		// Display a message if the nonce is invalid, may it expired.
		wp_die( 'The link you followed has expired, please try again.' );
	}

	// Load the post we want to duplicate.
	$post = get_post( $post_id );

	// Create a new post data array from the post loaded.
	if ( $post ) {
		$current_user = wp_get_current_user();
		$new_post     = array(
			'comment_status' => $post->comment_status,
			'menu_order'     => $post->menu_order,
			'ping_status'    => $post->ping_status,
			'post_author'    => $current_user->ID,
			'post_content'   => $post->post_content,
			'post_excerpt'   => $post->post_excerpt,
			'post_name'      => $post->post_name,
			'post_parent'    => $post->post_parent,
			'post_password'  => $post->post_password,
			'post_status'    => 'draft',
			'post_title'     => $post->post_title . ' (copy)',// Add "(copy)" to the title.
			'post_type'      => $post->post_type,
			'to_ping'        => $post->to_ping,
		);
		// Create the new post
		$duplicate_id = wp_insert_post( $new_post );
		// Copy the taxonomy terms.
		$taxonomies = get_object_taxonomies( get_post_type( $post ) );
		if ( $taxonomies ) {
			foreach ( $taxonomies as $taxonomy ) {
				$post_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'slugs' ) );
				wp_set_object_terms( $duplicate_id, $post_terms, $taxonomy );
			}
		}
		// Copy all the custom fields.
		$post_meta = get_post_meta( $post_id );
		if ( $post_meta ) {

			foreach ( $post_meta as $meta_key => $meta_values ) {
				if ( '_wp_old_slug' === $meta_key ) { // skip old slug.
					continue;
				}
				foreach ( $meta_values as $meta_value ) {
					add_post_meta( $duplicate_id, $meta_key, $meta_value );
				}
			}
		}

		// Redirect to edit the new post.
		wp_safe_redirect(
			add_query_arg(
				array(
					'action' => 'edit',
					'post'   => $duplicate_id
				),
				admin_url( 'post.php' )
			)
		);
		exit;
	} else {
		wp_die( 'Error loading post for duplication, please try again.' );
	}
} );

Después de añadir el código, ve a la pantalla Entradas ” Todas las entradas y pasa el ratón por encima del título de una entrada.

Encontrará un nuevo aviso “Duplicar” debajo de las opciones.

Duplicate post link

Al hacer clic en el enlace se creará una copia de la entrada con todo su contenido. A continuación, puede trabajar en ese borrador.

Una vez que hayas terminado, puedes copiar y pegar tus cambios en la entrada original publicada y borrar la copia.

Para un método con plugins, consulte nuestro artículo sobre cómo duplicar una entrada o página de WordPress.

44. Eliminar el Panel de Bienvenida del Escritorio de Administrador de WordPress

El Panel de Bienvenida aparece en el escritorio de administrador de WordPress. Se puede descartar u ocultar fácilmente al hacer clic en el botón “Opciones de pantalla”.

Welcome panel

Sin embargo, si usted está trabajando para hacer una experiencia más limpia Escritorio para los usuarios, es posible que desee ocultar de forma permanente.

Añada el siguiente código para desactivarlo para todos los usuarios de su sitio:

add_action(
	'admin_init',
	function () {
		remove_action( 'welcome_panel', 'wp_welcome_panel' );
	}
);

45. Añadir una columna de imagen destacada para entradas en el administrador de WordPress

Por defecto, WordPress solo muestra imágenes destacadas cuando está viendo su sitio o cuando edita una entrada o página.

El siguiente código añadirá una nueva columna a la pantalla Entradas ” Todas las entradas para las imágenes destacadas:

add_filter( 'manage_posts_columns', function ( $columns ) {
	// You can change this to any other position by changing 'title' to the name of the column you want to put it after.
	$move_after     = 'title';
	$move_after_key = array_search( $move_after, array_keys( $columns ), true );

	$first_columns = array_slice( $columns, 0, $move_after_key + 1 );
	$last_columns  = array_slice( $columns, $move_after_key + 1 );

	return array_merge(
		$first_columns,
		array(
			'featured_image' => __( 'Featured Image' ),
		),
		$last_columns
	);
} );

add_action( 'manage_posts_custom_column', function ( $column ) {
	if ( 'featured_image' === $column ) {
		the_post_thumbnail( array( 300, 80 ) );
	}
} );

Así es como quedaría después de añadir el código.

Featured image column

46. Bloquear el área de administrador de WordPress para todos excepto los administradores

Algunos sitios web de WordPress pueden necesitar que los usuarios registren una cuenta. Por ejemplo, un sitio de membresía de WordPress o una tienda de comercio electrónico.

La mayoría de estos plugins impedirán que esos usuarios accedan al área de administrador. Sin embargo, si no está utilizando un plugin de este tipo, puede añadir el siguiente código para bloquear el acceso al área de administración a todos los usuarios excepto a los administradores:

add_action( 'admin_init', function() {
	if ( ! current_user_can( 'administrator' ) ) {
       wp_redirect( home_url() );
       exit;
	}
} );

Los usuarios con otros perfiles pueden seguir accediendo a sus cuentas, pero después de conectarse serán redirigidos a la página de inicio.

Esperamos que este artículo te haya ayudado a aprender algunos trucos útiles para el archivo functions.php de WordPress. También puedes consultar nuestra guía definitiva para aumentar la velocidad y el rendimiento de WordPress y nuestra selección de los mejores editores de código para Mac y Windows.

Descargo: Nuestro contenido está apoyado por los lectores. Esto significa que si hace clic en algunos de nuestros enlaces, podemos ganar una comisión. Vea cómo se financia WPBeginner , por qué es importante, y cómo puede apoyarnos. Aquí está nuestro proceso editorial .

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

El último kit de herramientas de WordPress

Obtenga acceso GRATUITO a nuestro kit de herramientas - una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Reader Interactions

115 comentariosDeja una respuesta

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Moinuddin Waheed says

    So much to accomplish with the help of functions.php
    I think this is the core of the WordPress and if we do too much to it, we may lose many core functionalities.
    having said this, using wpcode is a wise idea to insert anything for functionality without compromising the WordPress core.
    I have a question though, if wpcode doesn’t insert it’s code in the main functions.php then how it works?
    and if inserts it into the same, how updating wordpress doesn’t erase it?

    • WPBeginner Support says

      The code is stored in your database and the plugin hooks in the code in different ways depending on how you set it in the plugin.

      Administrador

  3. Jiří Vaněk says

    I’ve noticed that on some websites, the top part of the browser changes color, specifically on mobile Chrome. Do you have any tested snippet that accomplishes this?

  4. Ralph says

    A lot of great ideas explained in novice friendly way. Thanks! I will try adding featured images to RSS feeds. It never worked before for some reason and now it will :)

  5. Ben says

    This is a pretty dangerous idea. Query strings exist for the purposes of cache busting, aka, making sure the end user has the latest version your js and css files.

    Removing those is going to cause all sorts of issues for returning users down the line as their browser will assume nothing has changed and use their cached version rather than downloading the new one.

    If for some reason you need to target a specific file and remove the query string (which I’ve had to do) you can use this code snippet:

    // remove version from scripts and styles
    function remove_version_scripts_styles($src) {
    if (strpos($src, ‘yourfile.js’)) {
    $src = remove_query_arg(‘ver’, $src);
    }
    return $src;
    }
    add_filter(‘script_loader_src’, ‘remove_version_scripts_styles’, 9999);

  6. Gean Paulo Francois says

    Very useful article. I just saved this page offline so I can insert some of these with my websites. Anyway, should I add the codes to functions,php and not anywhere else?

  7. Hussain Badusha says

    Nice compendium of some useful tricks and functions for wordpress. I added quite a new things to my wordpress knowledge after going through here.

    I look forward even more from you if you wish to

  8. vivek says

    Nice article,

    Just have a doubt if I am supposed to add these codes in snippets plugin or somwhere in file? if its snippet plugin, it’s not working. Kindly put some light.
    Thanks

    • WPBeginner Support says

      You would add these codes as a custom plugin or more commonly in your functions.php file

      Administrador

  9. Miley Cyrus says

    Great Article it its really informative and innovative keep us posted with new updates. its was really valuable. thanks a lot.

  10. John Dee says

    Almost NONE of these code snippets belong in your theme’s functions.php file. Only a few of them are related to the actual theme. Themes are for APPEARANCE. Create a PLUGIN for functionality. In any case, it would go in child theme’s functions.php file.

    • WPBeginner Support says

      Thank you for pointing this out, while we do mention site-specific plugins at the beginning of this article, we will be sure to look into making that statement clearer.

      Administrador

  11. Richard Yzenbrandt says

    Thank you so much for making this resource available. WP for Beginners is the best goto site on the web!

  12. alok patel says

    hey i am unable to add my post on specific page. when i write any blog post it shows in home page but i wanna also see in specific pages where i want to add. how i can out of from this problem. plz help me as soon as possible. if any video link thn plz share with reply. i m getting too much confused.

  13. DONALD says

    I am creating a form to collect data from my users.
    I have created the database from myphpAdmin
    I have created the form.
    I now created a new php.file in my child theme
    I referenced it in the form too using action = “name.php”
    Now i expect it to gather, peoples registration details.
    But clicking on submit on the form, says, page cannot be found.
    I dont know what i am not getting right.
    Please help me

  14. Shafiq Khan says

    Very useful post thanks.

    A question – Because you’re updating the functions.php of a theme.
    If you update the theme then you lose your tweaks.

    Is there a way around this? Is it just a cause of using a Child theme?

    Thanks

    • Lisa says

      Hi Shafiq,

      Any changes you make to a parent theme will be overwritten when you update it. It is good practice to work with a child theme when making changes to a theme you didn’t build that is going to be updated so that you can keep the changes you made.

    • Jan says

      I use the plugin ‘My Custom Functions’ – it is simply adding all functions to the functions.php automatically – so no re-writing after every update needed :)

    • Jane Lawson says

      This is late, but you can also create a plugin for your site (e.g. “[Site name]’s custom plugin”). It does require a bit of expertise, however, since some functions clash with other plugins/the site theme.

  15. Al1 says

    Another one :

    // Remove query string from static files :
    function remove_cssjs_ver( $src ) {
    if( strpos( $src, ‘?ver=’ ) )
    $src = remove_query_arg( ‘ver’, $src );
    return $src;
    }
    add_filter( ‘style_loader_src’, ‘remove_cssjs_ver’, 10, 2 );
    add_filter( ‘script_loader_src’, ‘remove_cssjs_ver’, 10, 2 );

  16. Andrew says

    I tried #16 to add the post featured thumbnail to m RSS feed but when I tested it in mailchimp (paused my campaign and previewed) it appears that it has changed from “summary” to “full text”? Is this expected behaviour? I want to leave the emails (rss driven) as summary, and simply add the thumbnail featured image at the top.

    Thanks for any help, I can’t find this on google anywhere.

  17. Em Cloney says

    re: removing rss feed for static pages — is it correct that the txt one would replace in that code is ‘url’ (with a page link, including ) and ‘homepage’ (if you’d like it to say something else, like ‘some other site’)?

  18. Mick O says

    Thanks for the helpful article. I really appreciate it. Can you possibly explain why the snippet to add Google analytics (#1) code includes the php declarations. If I have an existing functions.php file that is already defined with , do I need to include the markers again in the snippet? I’m trying to add other customizations into the functions.php and it’s getting hard to keep track.

  19. Luke Gibson says

    The one about the copyright date seems a little OTT when you could simply cut and paste in © 2006- and it would do exactly the same job, just replace 2006 with whatever static start date you wish. Or am I missing something?

  20. Zeeshan Arshad says

    Excellent, I was done with my theme and learning but there was much left. This post saved my day and of course I learnt many things as well.

    Best Wishes!

  21. Mark says

    Great set of tools. I immediately copied the guest author function as I saw it and will now disable a clumsy plugin I’ve been using. Do you have a function that will provide the post ID of the item being worked with in the editor? I’m trying to auto fill a form with media attachments for the current post but have only been able to get it to work in a custom meta-box but not in a thickbox . The thickbox returns all the media files for all the posts when I just want the current posts’s attachments.

  22. mommyblogger says

    Thanks for the great WordPress tips! I was hoping you could help me with an additional one?

    I’d like to prevent my tags/categories from spilling over onto another line by limiting the number of tags/categories that appear in the footer of my individual homepage posts. Is it possible to do this with the “the_excerpt”? I would also like the excerpt to be a “…read more” link and limit the number of characters in it. Here is the code it would need to be added to;

    $tags_list = get_the_tag_list( ”, __( ‘, ‘, ‘mummyblog’ ) ); if ( $tags_list ): ?> <li> <?php printf( __( ‘<span class=”%1$s”>Tagged</span> %2$s’, ‘mummyblog’ ), ‘entry-utility-prep entry-utility-prep-tag-links’, $tags_list ); ?> </li> <?php endif; // End if $tags_list ?>

    Thanks!

  23. SteveEBoy says

    Like all the others have said below – just too good, a massive help for a newbie and very useful for learning too. Great site all round. Thanks.

  24. LambrosPower says

    one of the best tutorials i read. Many important topics pointed out and for sure i didn’t know most of them since i just started wordpress custom design.

  25. Xiaozhuli says

    This article is endlessly useful. I bookmarked it and often refer to it when updating my theme or trying to answer a question. Great job!

  26. Mohammad Yeasin says

    You guys are just awesome. You know what, wpbegineer is the first website for which i have a separate folder in my bookmark menu. Too good for a wp begineer. youe name suits ur personality. lolz. One day i would must do something special for you. Inshallah.
    The only problem i face is related post with thumbnail. your coder are not working. vDont know what to do. Whatever, Keep up the marvelous job. Love the site wpbegineer.

  27. AA says

    Great post! You obviously know a lot about wordpress coding so I’m hoping you can answer a question. How to you remove the date & time stamp from a wordpress feed-rss? I’ve looked everywhere and can’t find any information on this. I’m working on a wordpress “site” and do not have a use for the dates. I have already removed them from the posts & pages.

    Much thanks in advance!

    • Editorial Staff says

      Date is NOT optional for RSS feeds. It is a MUST because that is how posts / articles are organized (reverse chronological order). You can remove the display of dates from the template, but you cannot remove them from the XML.

      Administrador

Deja tu comentario

Gracias por elegir dejar un comentario. Tenga en cuenta que todos los comentarios son moderados de acuerdo con nuestros política de comentarios, y su dirección de correo electrónico NO será publicada. Por favor, NO utilice palabras clave en el campo de nombre. Tengamos una conversación personal y significativa.