Asignar la primera imagen de la galería como destacada masivamente

A menudo nos encontramos con la necesidad de asignar la primera imagen de la gallery de un post como destacada. Esto nos lo encontramos normalmente cuando migramos webs a WordPress.

Os dejo una función que funciona a la perfección. Es posible que necesitéis lanzarla más de una vez en función del total de posts que tengáis.

El post type ‘post’ puede cambiarse por los post types en los que necesitéis lanzar esta función.


function wpse87964_set_post_thumbnails(){

    // Query args
    $wpse87964query_args = array(
		'nopaging' => true,
		'post_type' => 'post',
                'meta_query' => array(
                array(
                    'key' => '_thumbnail_id',
                    'compare' => 'NOT EXISTS'
                )
        ) );

    // Run query
    $wpse87964query = new WP_Query( $wpse87964query_args );

    // Open query loop
    if ( $wpse87964query->have_posts() ) : while ( $wpse87964query->have_posts() ) : $wpse87964query->the_post();

        // Query post attachments
        $attachments = get_children( 'post_parent=' . get_the_ID() . '&post_type=attachment&post_mime_type=image&order=desc' );
        if( $attachments ) {
            $keys = array_reverse( $attachments );
            set_post_thumbnail( get_the_ID(), $keys[0]->ID );
        };

    // Close query loop
    endwhile; endif;
    wp_reset_postdata();

}

Cómo resolver un loop de redirecciones en WordPress tras haber instalado SSL

En determinados servidores me ha ocurrido que al activar https en la web se genera un loop de redirecciones.

Aquí os cuento la solución:

Como se sugiere en el Codex, esto solo será necesario en caso de que haya habilitado el paso de SSL en la configuración de su equilibrador de carga (o firewall). Lo que significa que, si bien puede acceder al sitio a través de HTTP dentro de TLS / SSL, la comunicación que recibe su servidor es solo HTTP.

En este caso, se necesita este encabezado para que WordPress pueda «activar» HTTPS en la matriz de configuración $ _SERVER:

/** SSL */  
define('FORCE_SSL_ADMIN', true);  
// in some setups HTTP_X_FORWARDED_PROTO might contain  
// a comma-separated list e.g. http,https  
// so check for https existence  
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)  
    $_SERVER['HTTPS']='on';

¡Espero que os sirva de ayuda!

Cómo resolver un loop de redirecciones en el Network admin de un WordPress Multisite

A menudo, el problema se resuelve añadiendo este código en el fichero wp-config.php y borrando tus cookies antes de volver a hacer login:

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', '');

Sin embargo, la última vez que me ha ocurrido este problema no he conseguido resolverlo de esta forma. Investigando por la red, descubrí que si estás usando las www como dominio principal y lo tienes definido así en el wp-config.php…

define('DOMAIN_CURRENT_SITE', 'www.mydomain.com');

…lo más probable es que tengas que añadir las www en la tabla wp_blogs de la base de datos.

¡Espero que el tip te sirva de ayuda!