• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer
Cuarto Estado

Cuarto Estado

Mi blog: un viaje por mis intereses!

  • Tecnología
  • Estilo de vida
  • Música
  • ETC
Portada » Tecnología » Códigos útiles para WordPress (Genesis Framework)

Códigos útiles para WordPress (Genesis Framework)

25 Jun, 2019 en wordpress  Tecnología por Thiago Sei

Durante mi actividad con blogs basados en WordPress he recopilado varios fragmentos de código para personalizar la apariencia de mis sitios web, implementar alguna función o modificar alguna.

Los códigos a continuación los he usado y probado en el tema Genesis Sample (basado en Genesis Framework). Seguramente funcionarán en cualquier otro tema basado en Genesis Framework. Solo tendrás que copiar el código en el archivo functions.php de tu child theme. Si es código de estilos, sugiero añadirlo a la sección CSS personalizado (en Apariencia > Personalizar). Así se mantiene separado de la hoja de estilos original del child theme (style.css)

Códigos para functions.php

Personalizar la información del post

//* Modificar la info de la entrada

add_filter( 'genesis_post_info', 'sp_post_info_filter' );
function sp_post_info_filter($post_info) {
if ( !is_page() ) {
	$post_info = '[post_date] [post_comments zero="Comentarios bienvenidos" one="1 Comentario" more="% Comentarios"] [post_edit]';
	return $post_info;
}}

Personalizar los créditos en el footer

Si quieres quitar el crédito en el footer que dice algo como «Copyright © 2019 · Genesis Sample on Genesis Framework · WordPress · Log out» y poner algo propio, usa el siguiente código:

//* Customize the entire footer
remove_action( 'genesis_footer', 'genesis_do_footer' );
add_action( 'genesis_footer', 'sp_custom_footer' );
function sp_custom_footer() {
	?>
	<p>© 2019 Tecno Jefe · Todos los derechos reservados</p>
	<?php
}

Puedes reemplazar el siguiente fragmento por el texto que tu prefieras:

© 2019 Tecno Jefe · Todos los derechos reservados

Poner «Leer más» en español

//* Modify the Genesis content limit read more link
add_filter( 'get_the_content_more_link', 'sp_read_more_link' );
function sp_read_more_link() {
	return '... <a class="more-link" href="' . get_permalink() . '">[Sigue Leyendo...]</a>';
}

Este código reemplaza el texto «Read more» de Genesis, por el texto «[Sigue Leyendo…]» en las entradas donde está «cortado» el contenido. Cámbialo a tu gusto.

Post aleatorio a partir de una lista específica de posts

//random posts
function wpb_rand_posts() { 
 
$args = array(
    'post_type' => 'post',
    'orderby'   => 'rand',
	'post__in' => array(XXX,YYY,ZZZ),
    'posts_per_page' => 1, 
    );
 
$the_query = new WP_Query( $args );
 
if ( $the_query->have_posts() ) {
 
$string .= '<ul>';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        $string .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
    }
    $string .= '</ul>';
    /* Restore original Post Data */
    wp_reset_postdata();
} else {
 
$string .= 'no posts found';
}
 
return $string; 
} 
 
add_shortcode('wpb-random-posts','wpb_rand_posts');
add_filter('widget_text', 'do_shortcode'); 

Este código originalmente creado por WPbeginner.com (y apenas modificado por mí con la ayuda de la información oficial de WordPress), genera un post al azar (mediante las líneas «orderby» y «post_per_page») de una lista de tres posts con los IDs «XXX», «YYY», «ZZZ». Deberás modificar estas líneas para aumentar el número de posts mostrados y los ID de los posts que quieres incluir.

Una vez copiado este código en el functions.php de tu child theme, también deberás añadir el shortcode [wpb-random-posts] dentro de algún widget o post donde quieras añadir el post o posts al azar.

Artículo Anterior y Siguiente

add_action( 'genesis_before_content', 'genesis_prev_next_post_nav', 5 );

Este código añade un link hacia el post anterior y post siguiente (con sus respectivos títulos como anchor text) antes de la caja de comentarios. Un código algo mejor que este es el siguiente (aunque honestamente no recuerdo la fuente):

/** Genesis Previous/Next Post Post Navigation */
add_action( 'genesis_entry_footer', 'eo_prev_next_post_nav' );
function eo_prev_next_post_nav() {
	if ( is_single() ) {
		echo '<div class="prev-next-navigation">';
		previous_post_link( '<div class="previous"><b>Artículo anterior</b>: %link</div>', '%title' );
		next_post_link( '<div class="next"><b>Siguiente artículo</b>: %link</div>', '%title' );
		echo '</div><!-- .prev-next-navigation -->';
}
}

Este código añade el post anterior y siguiente al pie del contenido del post, algo un poco más adecuado. Además añade las palabras «Artículo anterior» y «Artículo siguiente» a los links de navegación.

Quitar las etiquetas HTML permitidas en el formulario de comentarios

add_filter( 'comment_form_defaults', 'sp_remove_comment_form_allowed_tags' );
function sp_remove_comment_form_allowed_tags( $defaults ) {
$defaults['comment_notes_after'] = '<div class="form-allowed-tags"><b>Nota:</b> Si el comentario no aparece luego de ser publicado, actualiza la página. No lo envies de nuevo.</div>';
return $defaults;
}

Adicionalmente, la línea «comment_notes_after» añade una nota.

Links no cliqueables en los comentarios

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

Crear un nuevo tamaño predeterminado de imagen en WordPress

/* Definir nuevos tamaños de imágenes */  
add_image_size( 'chica', 210, 400, false );

add_filter( 'image_size_names_choose', 'agregar_imagen_lista' );
function agregar_imagen_lista( $sizes ) {
	return array_merge( $sizes, array(
		'chica' => __('Pequeño'),
	) ); 
}

En este caso se está añadiendo un tamaño de imagen de nombre «Pequeño», con un ancho máximo de 200px por un alto máximo de 400px. Se podrá escoger éste tamaño entre los tamaños de imagen personalizados que ofrece WordoPress al insertar una imagen en un artículo.

Eliminar caja de comentarios de todo el sitio

add_action( 'genesis_after_entry', 'rv_remove_comments_genesis', 0 );
function rv_remove_comments_genesis() {
remove_action( 'genesis_after_entry', 'genesis_get_comments_template' );
}

Adsense dentro del texto de los posts

//*adsense en medio del contenido. Banner: dentro-del-post
add_filter( 'the_content', 'wpsites_adsense_middle_content' );
function wpsites_adsense_middle_content( $content ) {
        if( !is_single() )
            return $content;
 
            $paragraphAfter = 3; //Numero de parrafo o linea
            $content = explode ( "</p>", $content ); //desencadenante
            $new_content = '';
                for ( $i = 0; $i < count ( $content ); $i ++ ) {
                    if ( $i == $paragraphAfter ) {
                    $new_content .= '<div style="padding: 5px 5px 5px 0; margin-right: 0; margin-bottom: 15px;">';
                    $new_content .= '
<!-- Dentro del post -->
<ins class="adsbygoogle dentro-del-post"
     style="display:inline-block"
	 data-full-width-responsive="true"
     data-ad-client="ca-pub-XXXXXXXXXXXXXXXX"
     data-ad-slot="XXXXXXXXXXXX"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>';
                    $new_content .= '</div>';
                    }
            $new_content .= $content[$i] . "</p>";
            }
            return $new_content;
    }

Ten la precaución de cambiar las XXXXXX por los valores respectivos de tu ID de editor (ca-pub) y el ID del banner (data-ad-slot).

Con este código, el bloque de anuncio aparece tras el tercer párrafo (puedes poner otro número), cuando en el código html aparece el desencadenante:

</p>

Puedes cambiar ese desencadenante por el siguiente:

\n

En este caso, el bloque de anuncio aparecerá tras el tercer salto de línea. Tendrás que probar entre ambos para ver cuál es mejor para ti.

El crédito a wpsites.net por este código.

Códigos para CSS personalizado (o style.css)

Lista anidada ordenada

.lista-anidada ol {
  list-style-type: none;
  counter-reset: item;
  margin-left:20px;
}

.lista-anidada ol > li {
  display: table;
  counter-increment: item;
  margin:0;
}

.lista-anidada ol > li:before {
  content: counters(item, ".") "";
  display: table-cell;
  padding-right: 0.4em;    
}

.lista-anidada li ol > li {
	margin-left:-5px;
}

.lista-anidada li ol > li:before {
  content: counters(item, ".") " ";
}

En un post puedes insertar una lista dentro de un DIV asociado con esta clase. Es decir algo como esto:

<div class="lista-anidada">
<ol>
<li>Item 1
<ol>
<li>Subitem 1.1</li>
<li>Subitem 1.2</li>
<li>Subitem 1.3</li>
<li>Subitem 1.4</li>
</ol>
</li>
<li>Item 2</li>
</ol>
</div>

La desventaja de este código es que no funciona cuando quieres iniciar un item en un número determinado mediante el código <ol start=»algúnvalor»> . El creador del mismo supo decirme mediante Twitter que es imposible solucionar esto solo con CSS y que se necesita javascript, aunque no tengo idea de cómo hacer aquello. Por esa razón es que asocio este código a la clase «lista-anidada» y lo uso donde lo necesito (en los índices de los artículos, por ejemplo). Para listas donde necesito reiniciar los items, simplemente uso la opción de lista ordenada de WordPress, que no tiene problema en este aspecto.

Artículos relacionados:

  • WordPress
    Encabezado fijo en WordPress: Cómo desactivar en el…
  • mariia-shalabaieva-HBkpnDVc_Ic-unsplash
    Haz tu blog viral: Botones de compartir para…
  • kelly-sikkema-KSl-dkCha14-unsplash
    Redes sociales en el menú de Wordpress: Menu Image Plugin
  • Feedburner error 404 WordPress
    FeedBurner sigue vivo en tu blog? Así solucionas la…

wordpress Tecnología

Primary Sidebar

Últimos artículos

  • ¿Tocas guitarra con los dedos? Este truco inédito mejora tu técnica sin que hagas nada 10 junio, 2025
  • Tarjetas con millas: la trampa disfrazada de recompensa 3 junio, 2025
  • Me dieron una tarjeta en un banco ecuatoriano y empezaron las llamadas de estafadores 27 mayo, 2025
  • Mis opiniones de la silla gamer Marvo Scorpion CH 106: casi perfecta, pero… 20 mayo, 2025
  • Borra este número de tu tarjeta y estarás más protegido si te la roban 13 mayo, 2025

Temas

blogs (5) Ecuador (9) finanzas (5) letras (9) wordpress (12)

Categorías

Enlaces

Portada
Acerca de
Contacto

Footer

Enlaces

Portada
Acerca de
Contacto

Legal

Política de privacidad
Términos de servicio

© 2025 Cuarto Estado · Todos los derechos reservados