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

El archivo de funciones de WordPress, conocido como functions.php, es una potente herramienta que viene con todos los temas de WordPress. Actúa como un plugin, lo que le permite añadir código personalizado a su sitio con facilidad.

Utilizamos código personalizado en nuestros sitios cuando se puede utilizar un breve fragmento de código. Esta versatilidad y flexibilidad de WordPress nos permite combinar la funcionalidad de varios plugins de una forma fácil de gestionar.

En este artículo, compartiremos algunos de esos trucos prácticos y útiles para utilizar su archivo de funciones de WordPress, ayudándole a sacar más provecho de su sitio 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 un archivo de funciones no es una buena práctica.

Si actualiza su tema, el archivo functions.php se sobrescribirá y perderá sus fragmentos de código personalizados. No puedes desactivar un fragmento de código sin borrarlo.

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.

¿Por qué recomendamos WPCode?

  • Guarde fácilmente fragmentos de código personalizados sin editar ningún archivo del núcleo.
  • Inserte automáticamente fragmentos de código donde los necesite
  • Cada fragmento de código se guarda por separado y puede desactivarse individualmente.
  • Un mecanismo a prueba de fallos desactivará un fragmento de código si provoca un error en su sitio.

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 / administración de WordPress? El primer paso es añadir un logotipo personalizado al Escritorio.

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 administración 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 más información sobre el método de los plugins, 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 tiene que añadir el shortcode [user_count] a su entrada o página donde desea 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 nuevos trucos útiles para el archivo functions.php en WordPress. Puede que también quieras ver nuestra guía sobre cómo mostrar código en WordPress para compartir tus fragmentos de código fácilmente y nuestra selección de los mejores editores de código para Mac y Windows.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

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

114 comentariosDeja una respuesta

  1. DANISH

    such a great and useful tricks.. :)

  2. Webtechideas

    Such a nice list of useful tricks. It will help both plugin and theme developers.

  3. ahmed

    In #14, isn’t that a instead of ?

  4. Mick O

    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.

    • Editorial Staff

      It includes opening php because it is closing PHP tag to allow you to paste plain HTML Google analytics code.

      Administrador

  5. Luke Gibson

    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?

    • Editorial Staff

      Yes, you can definitely do that. But if you are releasing this as part of a theme meant for distribution, then you can’t do that.

      Administrador

  6. Zeeshan Arshad

    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!

  7. DesignSkew

    In “Add Author Profile Fields”, the function you mentioned to echo is not working.

  8. Mark

    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.

  9. mommyblogger

    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!

  10. SteveEBoy

    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.

  11. LambrosPower

    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.

  12. Xiaozhuli

    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!

  13. Mohammad Yeasin

    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.

  14. AA

    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

      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

  15. Michele Welch

    Awesome post! Can’t wait to get started on the custom dashboard gravatar! Really exceptional post. :-)

  16. Phil

    Great article, I’ve bookmarked it for future reference. Just found wpbeginner by chance what a great resource, thanks!

  17. wparena

    it is really good that you compiled all impotent things at one place

  18. Mark Welburn

    Good stuff, bookmarked this already. Can see a few of these come to good use more than once. Cheers, Mark.

  19. Connor Crosby

    Just a note, be careful when you copy and paste the “end of excerpt” function. It showed a question mark instead of “…” since it was one character. I had to rewrite “…” for it show up.

  20. Martin

    Probably the best post about the use of functions.php. Thanks for the tricks and for saving our time.

  21. mark.

    I would suggest an addendum be made to Tip #3 mentioning the fact that this is not security in any way shape or form, and is definitely not an alternative to upgrading as people should.

    Hiding the version number is only beneficial to those of us who like to keep unnecessary junk out of the HEAD of your HTML document. Outside of that, it serves no purpose and should not be confused with security; to help illustrate that point: http://dd32.id.au/2010/07/31/what-version-of-wordpress-is-behind-that-website/

  22. helpin

    Could you tell me if I need to add these codes for every theme which my multi site have? Is there any there way which these codes automatically apply to the newly added themes?

    Thanks !

    • Editorial Staff

      You would have to add these to your theme’s functions.php file. So if it is a theme that is available on all networks, then only once. If there are custom themes being used on each network site, then you would have to do it on each….

      Administrador

  23. Andy

    You guys rock!!! Thanks for the awesome post.

    Best,

    Andy

  24. ddeja

    Thanks for those tips. Some are new for me. So I will be probably try to use them:)

    Thanks again.

  25. William

    Thanks for the insightful post. Registering sidebar widgets and customising the excerpt mode is going to be handy. Cheers

  26. Kate Mag

    Thanks for sharing extremely useful tricks. I didn’t know few tricks before, i know now!.

  27. Adam

    Okay, the dynamic copyright date in the footer is one of the coolest tricks for Wordpress I’ve come across. Always hate having to do that each year, but not anymore. Thanks for sharing that one!

  28. Susan

    Hi, I am trying to change the default gravatar. The option to choose my new gravatar is showing up however instead of my pic for my gravatar it is showing a broken pic link. I know the path works cause it does when I plug it in to the browser the pic comes up. I have also tried .gif, .png, .jpg and they are all broken. Also it is sized per my theme at 48px X 48px Can you help?

  29. Dave Z

    There are some good suggestions here. Implementation could be improved for a few of them.

    For instance, in #8 – Dynamic Copyright, it would probably be better to call the function during the publish_page and publish_post actions. Then, instead of printing the year to the screen, the value (year range) could be stored in the options table (with update_option()). In the theme, you would do something like: echo get_option( ‘comicpress_copyright’, date( ‘Y’ ) );. This would give the current year as the default date, or your preset range. The advantage here is that you eliminate the constant need to query the database for the years during every page load (since get_option can be configured to load automatically with the rest of the options). WordPress can already be heavy on database queries, no need to add an additional one if it can be avoided!

    #18 – Remove Login Errors is removing -all- login errors, which could be bad because it also omits notices about disabled cookies, etc. A more effective approach would be to have the function return:

    str_replace( array( ‘Invalid username’, ‘Incorrect password’ ), ‘Invalid username or password’, $str );

    This keeps the user informed of potential errors while obfuscating which field the error actually occurred in. One thing to keep in mind is that if the username is correct, WordPress will auto-populate that field in subsequent login attempts. A hacker aware of WordPress operation would then know that the username was indeed valid. You can prevent this by commenting out the appropriate section in the wp-login.php file (lines 529-530 in version 2.9.2)–not ideal, I know, but there are no hooks at that point in the code.

    Nice tips. I like the Post Thumbnails demonstration.

  30. Abdullah

    Nice post.. very useful information.

    Thnkx wpbeginner for making us more professional in our field.

    Regards
    Mohummad Abdullah

  31. Zhu

    Thank you for the tips, I already implemented a few (like the custom Gravatar) and they work just fine!

  32. Sahus Pilwal

    Thanks for the extremely helpful tips. I wish I could find more extremely useful tricks/hack articles for WordPress!

    Cheers, Sahus

  33. graphicbeacon

    slight problem with NO. 14. Widget title starts with a h2 tag and ends with an h3- Wouldnt validate well methinks.

  34. Todd Santoro

    here is one for changing the login logo:

    function the_custom_login_logo() {
    echo ‘
    h1 a { background-image:url(‘.get_bloginfo(‘template_directory’).’/images/custom-login-logo.gif) !important; }
    ‘;
    }

    add_action(‘login_head’, ‘the_custom_login_logo’);

    • Todd Santoro

      Make sure you change the single quotes in this code to actuall single quotes as WP strips them in the comments so the PHP code is not executed. Better yet retype it and you will have no problem.

      Cheers!

  35. Kenton Bell

    I am really impressed with this list, better options than hacking away at the theme files that get lost in upgrades. Thank you.

  36. Raoni

    Hi,

    just an update, in item 4. Add a Custom Dashboard Logo, in WordPress 3 the “custom-logo.gif” now is a .png image.

    Great collection!!!!

  37. Andris

    That was a very useful post. I just implemented “4. Add a custom Dashboard Logo” to my Website.

  38. Todd Santoro

    Great post. I have this in my WP tool box now. It has everything a theme designer would need in one article. Thanks WPBeginner!

  39. Jake Goldman

    Great tips. Got a kick out of seeing a few of mine in there. :-) lots of new tips coming soon in my next article!

  40. Tony

    Finally! I know how to cure the incorrect comment count! Thanks, WPBeginner!

  41. DaveK

    Brilliance, I will be putting quite a few of these to good use.

    Congrats on the site guys you go from strength to strength, I usually manage to find something useful here.

    Keep up the good work.

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.