Hoy vamos con un tutorial sobre 25 códigos útiles para WordPress con los que podrás modificar tu sitio WordPress.

En general funcionan bien si estás trabajando con una instalación normal de wordpress. Sin embargo, si estás usando algún tipo de framework, posiblemente tendrás que modificar el código y cambiar la sintaxis de la función que estés utilizando. Consulta la documentación de tu framework para saber cómo hacerlo.
Antes de comenzar, como siempre, te recomendamos que realices copias de seguridad.

25 códigos útiles para WordPress

1. Excluir páginas en resultados de búsqueda de WordPress

Archivo a editar: functions.php

WordPress mostrará los resultados de la página en los resultados de búsqueda habituales. Esto no siempre es lo que se quiere, sobre todo si sólo tiene unas cuantas páginas. También es común que los blogueros ofrezcan algunas ventajas Premium a sus suscriptores como acceso a contenido bloqueado; sin embargo, pocos en realidad ocultan estas páginas. Una forma rápida de resolver este problema es eliminar todas las páginas de resultados de búsqueda, es por eso que este es uno de los 25 códigos útiles para WordPress que te resultarán muy útiles.

La función se puede ampliar añadiendo más tipos de entradas a la consulta (entradas, páginas, etc).

function filter_search($query) {
	if ($query->is_search) {
		$query->set('post_type', 'page');
	}
	return $query;
}
add_filter('pre_get_posts', 'filter_search');

2. Ocultar la opción de actualizar mensajes en WordPress

Archivo a editar: functions.php

Para deshabilitar temporalmente la opción de actualización de WordPress en el área de administración, porque por ejemplo no queremos que otro usuario novato tenga la posibilidad de actualizar, usaremos este código.

// Oculta actualizaciones en WordPress
function wp_hide_update() {
    remove_action('admin_notices', 'update_nag', 3);
}
add_action('admin_menu','wp_hide_update');

3. Mantenimiento temporal

Archivo a editar: functions.php

Cuando los administradores necesiten hacer un mantenimiento del sitio web y no queramos que los usuarios perciban los cambios que estamos haciendo, ponemos el siguiente bloque de código, para cerrar brevemente la web a los usuarios.

Para reestablecerlo de nuevo, bastará con eliminar la función, o simplemente dejarlo comentado por si en el futuro nos interesa reutilizarlo.

// Temporalmente en mantenimiento con - http response 503 (Service Temporarily Unavailable)
// Bloquea la vista de la web a los usuarios no administradores.
function wp_maintenance_mode(){
    if(!current_user_can('edit_themes') || !is_user_logged_in()){
        wp_die('En mantenimiento, disculpe las molestias. Vuelva  a intentarlo más tarde.', 'En mantenimiento, disculpe las molestias. Vuelva  a intentarlo más tarde.'', array('response' => '503'));
    }
}
add_action('get_header', 'wp_maintenance_mode');

4. Poner como imagen destacada

Archivo a editar: functions.php

Sitúa a la primera imagen que se sube como imagen destacada.

add_filter('the_content', 'set_featured_image_from_attachment');
function set_featured_image_from_attachment ($content) {
	global $post;
	if (has_post_thumbnail()) {
		// Muestra la imagen destacada
		$content = the_post_thumbnail() . $content;
	} else {
		// get & set imagen destacada
		$attachments = get_children(array(
			'post_parent' => $post->ID,
			'post_status' => 'inherit',
			'post_type' => 'attachment',
			'post_mime_type' => 'image',
			'order' => 'ASC',
			'orderby' => 'menu_order'
		));
		if ($attachments) {
			foreach ($attachments as $attachment) {
				set_post_thumbnail($post->ID, $attachment->ID);
				break;
			}
			// muestra la imagen destacada
			$content = the_post_thumbnail() . $content;
		}
	}
	return $content;
}

5. Añadir imágenes destacadas a los feeds de WordPress

Archivo a editar: functions.php

WordPress aún no ofrece la posibilidad de mostrar la imagen destacada de un sitio en el feed RSS. Mientras no lo implementen, podremos usar como alternativa la siguiente función:

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

6. Agregue títulos a previous_post_link y next_post_link

Archivo a editar: single.php

Si usas los enlaces anterior y siguiente en tus artículos, este código te permitirá modificar sus nombres para atraer a más gente a hacer clic en ellos.

<?php
	$p = get_adjacent_post(false, '', true);
	if(!empty($p)) echo '<div class="prev"><a href="' . get_permalink($p->ID) . '" title="' . $p->post_title . '">' . $p->post_title . '</a></div>';
	$n = get_adjacent_post(false, '', false);
	if(!empty($n)) echo '<div class="next"><a href="' . get_permalink($n->ID) . '" title="' . $n->post_title . '">' . $n->post_title . '</a></div>';
?>

7. Redirige los enlaces de los archivos de autor a la página “Acerca de”

Archivo a editar: functions.php

No tiene mucho sentido tener el enlace de los autores en cada entrada, si en nuestra web sólo hay un autor. Este pequeño fragmento, redireccionará dicho enlace a su página de autor en la que se podrá ver la información del autor.

add_filter( 'author_link', 'my_author_link' );
function my_author_link() {
	return home_url( 'about' );
}

8. Quitar la Url del formulario de comentarios de WordPress

Con este sencillo código que os mostramos a continuación, podréis eliminar la url del cuadro de comentario. Muy útil si sólo os interesan los comentarios de los spammers.

function remove_comment_fields($fields) {
    unset($fields['url']);
    return $fields;
}
add_filter('comment_form_default_fields',remove_comment_fields);

9. Eliminar el área de administración de WordPress del menú

Archivo a editar: functions.php

La siguiente función se usa para restringir el área de administración a otros usuarios. El objetivo de esto, es evitar que un usuario novato pueda echar a perder nuestro trabajo.

<?php
/* Borrar opciones y entradas del menú */
	add_action( 'admin_menu', 'my_remove_menu_pages' );
	function my_remove_menu_pages() {
		remove_menu_page('options-general.php');
		remove_menu_page('edit.php');
	}
?>

10. Cómo redirigir al post si en la búsqueda sólo hay una coincidencia

Archivo a editar: functions.php

WordPress enviará visitantes a su plantilla search.php después de una búsqueda para mostrar una lista de entradas o páginas del sitio. Esto se hace incluso si sólo hay un resultado de búsqueda. Esta función soluciona el problema, ya que si sólo hay un resultado de la búsqueda, el usuario directamente va a la publicación en cuestión .

add_action('template_redirect', 'redirect_single_post');
function redirect_single_post() {
    if (is_search()) {
        global $wp_query;
        if ($wp_query->post_count == 1 && $wp_query->max_num_pages == 1) {
            wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
            exit;
        }
    }
}

11. Establecer un límite mínimo en los comentarios de WordPress

Archivo a editar: functions.php

Si queremos que los comentarios tengan una longitud mínima, añadiremos esta función a la plantilla en cuestión. Simplemente, cambiamos el valor de la cadena $ minimaLongitudComentario al número mínimo de caracteres que necesita para cada comentario .

add_filter( 'preprocess_comment', 'minimal_comment_length' );
function minimal_comment_length( $commentdata ) {
$minimalCommentLength = 50;
if ( strlen( trim( $commentdata['comment_content'] ) ) < $minimalCommentLength )
{
wp_die( 'All comments must be at least ' . $minimalCommentLength . ' characters long.' );
}
return $commentdata;
}

12. No poner frames en la web

Editar: functions.php

El uso de frames hoy en día ya debería estar obsoleto, sin embargo, todavía se puede encontrar a personas que lo siguen usando.
Para evitar que se pueda poner un frame en la web, usamos lo siguiente:

// Quitar los frames en WordPress
function break_out_of_frames() {
	if (!is_preview()) {
		echo "\n<script type=\"text/javascript\">";
		echo "\n<!--";
		echo "\nif (parent.frames.length > 0) { parent.location.href = location.href; }";
		echo "\n-->";
		echo "\n</script>\n\n";
	}
}
add_action('wp_head', 'break_out_of_frames');

13. Aumentar el límite de memoria de WordPress

Archivo a editar: wp -config.php

La cantidad de memoria predeterminada en WordPress es de 32MB, lo que puede ser insuficiente cuando usamos algunos plugins, apareciendo el típico aviso de error de “sin memoria”. Pues bien, esa cantidad de memoria puede ser modificada desde el archivo de configuración que encontrarás en www.tusitio.com/wp-config.php algo bastante simple que gracias a estos 25 códigos útiles para WordPress puedes solucionar rápidamente. Simplemente cambia el valor de WP_MEMORY_LIMIT a 64M , 128M etc…

define('WP_MEMORY_LIMIT', '64M');

14. Ver comentarios sólo de los propios autores en el panel del administrador

Archivo a editar: functions.php

Al iniciar sesión en el área de administración de WordPress, podemos ver todos los comentarios de los autores. Con este código, sólo veremos los comentarios de los artículos realizados con ese autor.

function wps_get_comment_list_by_user($clauses) {
        if (is_admin()) {
                global $user_ID, $wpdb;
                $clauses['join'] = ", wp_posts";
                $clauses['where'] .= " AND wp_posts.post_author = ".$user_ID." AND wp_comments.comment_post_ID = wp_posts.ID";
        };
        return $clauses;
};
if(!current_user_can('edit_others_posts')) {
add_filter('comments_clauses', 'wps_get_comment_list_by_user');
}

15. Agregar un estilo diferente a la última entrada

Archivo a editar: functions.php

Esta función de los 25 códigos útiles para WordPress añadirá una nueva clase a la última entrada de tu consulta. Mediante el uso de esta función, puedes utilizar un estilo diferente que se mostrará en la parte inferior de la página principal y será distinto a las otras entradas.

// añadir clases a la última entrada de la consulta
function last_post_class($classes){
global $wp_query;
if(($wp_query->current_post+1) == $wp_query->post_count) $classes[] = 'last';
return $classes;
}
add_filter('post_class', 'last_post_class');

16. Borrar todos los comentarios spam en un sólo paso

Archivo a editar: SQL query

A menudo, se almacena gran cantidad de mensajes basura en el área de administración. Ahora te enseñaremos como eliminarlos de forma rápida con uno e los 25 códigos útiles para WordPress que utilizamos, gracias a una simple consulta SQL, que los elimina todos de una vez.

DELETE FROM wp_comments WHERE comment_approved = 'spam';

17. Enviar notas al resto de administradores

Archivo a editar: functions.php

Con esta función podremos enviar una nota al resto de administradores a modo de recordatorio.

// Nota administradores
function adminnote($atts, $content = NULL){
	if(current_user_can('edit_themes') || is_user_logged_in()){
		return 'Admin Notice‘ . $content . ‘';
	}
}
add_shortcode('note', 'adminnote');
// Usa [note]Esto sólo se mostrará a los administradores[/note]

18. Permitir PHP en los widgets de texto de WordPress

Archivo a editar: functions.php

El widget de texto por defecto en WordPress sólo permite texto. Hay algunos plugins que nos permiten añadir PHP. Alternativamente, se puede mejorar el control de texto predeterminado para permitir PHP, añadiendo esta función a tu plantilla functions.php .

function php_text($text) {
 if (strpos($text, '<' . '?') !== false) {
 ob_start();
 eval('?' . '>' . $text);
 $text = ob_get_contents();
 ob_end_clean();
 }
 return $text;
}
add_filter('widget_text', 'php_text', 99);

19. Cambiar url de las imágenes

Archivo a editar: consulta SQL

Muchos usuarios deciden alojar sus imágenes en un servicio externo para reducir la carga de su hosting. Si estás interesado en hacer esto, sólo tendrás que cambiar la ubicación de todas las imágenes que ya subiste.

Para ello, es necesario realizar dos consultas SQL a tu base de datos:

UPDATE wp_posts SET post_content = REPLACE (post_content, 'src="//www.antiguaurl.com', 'src="//nuevaursl.com');

Y:

UPDATE wp_posts SET  guid = REPLACE (guid, 'http://www.antiguaurl.com', 'http://nuevaurl.com') WHERE post_type = 'attachment';

20. Agregar contenido al final de cada RSS en WordPress

Archivo a editar: functions.php

Agregar contenido a la parte inferior de cada entrada de tu feed RSS. Puedes usar esto para añadir contenido extra o añadir un enlace de vuelta a tu blog.

function feedFilter($query) {
    if ($query->is_feed) {
        add_filter('the_content','feedContentFilter');
    }
    return $query;
}
add_filter('pre_get_posts','feedFilter');
function feedContentFilter($content) {
    $content .= '<p>El contenido extra, RSS, va aquí...</p>';
    return $content;
}

21. Mover barra de administración de WordPress a la parte inferior

Archivo a editar: functions.php

Por defecto, al identificarnos, aparece la barra de administración de wordpress en la parte superior. Podemos moverla a la parte inferior, usando este código.

function fb_move_admin_bar() {
    echo '
    <style type="text/css">
    body {
    margin-top: -28px;
    padding-bottom: 28px;
    }
    body.admin-bar #wphead {
       padding-top: 0;
    }
    body.admin-bar #footer {
       padding-bottom: 28px;
    }
    #wpadminbar {
        top: auto !important;
        bottom: 0;
    }
    #wpadminbar .quicklinks .menupop ul {
        bottom: 28px;
    }
    </style>';
}
// en el backend
add_action( 'admin_head', 'fb_move_admin_bar' );
// en el frontend
add_action( 'wp_head', 'fb_move_admin_bar' );

22. Añadir Miniaturas en la sección de administración de entradas / lista de Páginas

Archivo a Editar: functions.php

Visualizar la miniatura correspondiente al navegar por los mensajes y las páginas a través de tu área de administración. Aunque ya estamos terminando con los 25 códigos útiles para WordPress este es quizás uno de los más interesantes para webs de revistas online o blogs.

/****** Añadir Miniaturas en Administrar Entradas / Lista de Páginas ******/
if ( !function_exists('AddThumbColumn') && function_exists('add_theme_support') ) {
    // por correo y página
    add_theme_support('post-thumbnails', array( 'post', 'page' ) );

    function AddThumbColumn($cols) {

        $cols['thumbnail'] = __('Thumbnail');

        return $cols;
    }

    function AddThumbValue($column_name, $post_id) {

            $width = (int) 35;
            $height = (int) 35;

            if ( 'thumbnail' == $column_name ) {
                // miniatura de WP 2.9
                $thumbnail_id = get_post_meta( $post_id, '_thumbnail_id', true );
                // imagen de la galeria
                $attachments = get_children( array('post_parent' => $post_id, 'post_type' => 'attachment', 'post_mime_type' => 'image') );
                if ($thumbnail_id)
                    $thumb = wp_get_attachment_image( $thumbnail_id, array($width, $height), true );
                elseif ($attachments) {
                    foreach ( $attachments as $attachment_id => $attachment ) {
                        $thumb = wp_get_attachment_image( $attachment_id, array($width, $height), true );
                    }
                }
                    if ( isset($thumb) && $thumb ) {
                        echo $thumb;
                    } else {
                        echo __('None');
                    }
            }
    }
    // por correo
    add_filter( 'manage_posts_columns', 'AddThumbColumn' );
    add_action( 'manage_posts_custom_column', 'AddThumbValue', 10, 2 );
    // por página
    add_filter( 'manage_pages_columns', 'AddThumbColumn' );
    add_action( 'manage_pages_custom_column', 'AddThumbValue', 10, 2 );

23. Eliminar los mensajes de revisiones no utilizadas

Archivo a editar: SQL query

Dado que las revisiones pueden ocupar mucho espacio en la base de datos, es conveniente eliminarlas.

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

24. Dar estilo al primer párrafo

Archivo a editar: functions.php

Con este fragmento de código podremos dar un estilo diferente al primer párrafo de los mensajes y páginas, para diferenciarlo del resto de contenido y este es sin duda otro de los 25 códigos útiles para WordPress que puedes utilizar.

function first_paragraph($content){
global $post;
if ($post->post_type == "post"){
     return preg_replace('/&lt;p([^>]+)?>/', '&lt;p$1 class="first">', $content, 1); }
else {
       return $content;
      }
}
add_filter('the_content', 'first_paragraph');

25. Asignar todos los artículos de un autor a otro

Archivo a editar: SQL query

Esta simple consulta, permite transferir los mensajes de un autor a otro.

UPDATE wp_posts SET post_author = 'new-author-id' WHERE post_author = 'old-author-id';

¿Te resultaron útiles los 25 códigos útiles para WordPress ?

Si te han resultado de ayuda estos 25 códigos útiles para WordPress también puedes consultar la sección de modificaciones, en ella encontrarás todo lo necesario para añadir nuevas funcionalidades a tu página web de forma sencilla.

Deja un comentario

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