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

115 comentariosDeja una respuesta

  1. Syed Balkhi

    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

    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

      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

    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

    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 :)

    • WPBeginner Support

      Glad to hear you found our tricks helpful :)

      Administrador

  5. Ben

    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

    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?

    • WPBeginner Support

      Correct, these codes are for your functions.php file.

      Administrador

  7. Hussain Badusha

    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

    • WPBeginner Support

      Glad you found our guide helpful :)

      Administrador

  8. Satinder Satsangi

    Oh WoW,

    This is lifesaver most of the times, would like to know more about useful functions.

    • WPBeginner Support

      Glad you found our guide helpful :)

      Administrador

  9. vivek

    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

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

      Administrador

  10. Beulah Wellington

    Thank you for this tutorial. I learned a lot. I will be reading it again.

    • WPBeginner Support

      You’re welcome, glad our guide can continue to help you :)

      Administrador

  11. Ali Jahani

    Hi
    Thanks a lot of….

    wpbeginner Is god team

    • WPBeginner Support

      You’re welcome, glad you like our content :)

      Administrador

  12. VISHAL CHOWDHRY

    Superb Article.
    Waiting for more of this :)

    • WPBeginner Support

      Thank you, glad you liked our content :)

      Administrador

  13. Miley Cyrus

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

    • WPBeginner Support

      Glad our article could be helpful :)

      Administrador

  14. John Dee

    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

      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

  15. Suman Samanta

    Nice information for a new bloggers. It is really helpful.

  16. Richard Yzenbrandt

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

  17. alok patel

    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.

  18. DONALD

    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

  19. marvin N N

    is there a plugin one can use to customise a theme’s default menu setting to suit your taste???

  20. Sazzad Hossain

    Thanks for this codes.

  21. Shafiq Khan

    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

      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

      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

      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.

  22. Neil

    Excellent post – thank you for the tips & tricks. They are all very helpful :)

  23. Karakaplan

    How to use these above with child theme functions file?

    • Minhaz

      Nothing difference with parent or child theme’s functions.php

  24. Joe

    I’ve not done much with the functions file so it was good to see this article.

    Thanks.

  25. Jorge Rosa

    Great snippets. Very handy and useful. Thank You!

  26. sriganesh

    this is best site for wordpress

  27. Bilal

    will you tell me a most easy book for wordpress.
    i am very new in this field .
    thanks in advance

  28. Al1

    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 );

  29. siva

    Great post, Could provide all wordpress function with example

  30. shojib

    This is the best blog for Wordpress users.

  31. Parveen

    Great post!!!
    I am a newbie and looking for such tricks.
    Thanks.

  32. Deepak Kanyan

    Really a nice blog. i had learn lot of things from here thanks admin.

  33. Andrew

    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.

  34. Em Cloney

    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’)?

  35. Mohan Manohar

    This is huge list and great help. would like to know the first part of twitter counter code is to be pasted in function.php or directly into texty widget of theme.

  36. grafx

    There is an easier way to remove WordPress Version Number…

    remove_action(‘wp_head’, ‘wp_generator’);

  37. DANISH

    such a great and useful tricks.. :)

  38. Webtechideas

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

  39. ahmed

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

  40. 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

  41. 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

  42. 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!

  43. DesignSkew

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

  44. 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.

  45. 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!

  46. 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.

  47. 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.

  48. 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!

  49. 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.

  50. 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

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.