✅ 12 Snippets de Código para WordPress

Hoy quiero compartir contigo 12 fragmentos de código esenciales para WordPress que puedes insertar en el archivo functions.php de tu tema hijo o en un plugin de funcionalidades. Estos códigos te permitirán añadir o eliminar diferentes funcionalidades en tu sitio de manera sencilla y sin necesidad de instalar plugins adicionales.

Te recomiendo que te descargues el plugin Code Snippets para agregar los códigos.

trozos de código para wordpress

1. Categorías en las Páginas

Añade una nueva sección de categorías dentro del custom post type de páginas.

add_action( 'init', 'pages_tax' );
function pages_tax() {
register_taxonomy(
'things',
'page',
array(
'label' => __( 'Categorías' ),
'rewrite' => array( 'slug' => 'categorias' ),
'hierarchical' => true,
)
);
}
Lenguaje del código: PHP (php)

2. Eliminar Campo Web en Comentarios

 Elimina el apartado web del formulario de comentarios de tu WordPress.

add_filter ('comment_form_field_url', function ($url) {
return;
});
Lenguaje del código: PHP (php)

3. Modo Mantenimiento

Este trozo de código simplemente pone tu web en modo mantenimiento para los usuarios de una manera muy sencilla.

Cuando termines simplemente borra el código o desactiva el snippet.

function modo_mantenimiento_on() {
if( !current_user_can( 'edit_themes' ) || !is_user_logged_in() ) {
wp_die( 'Estamos en mantenimiento. Vuelve en 1 hora.', 
'Estamos en mantenimiento. Vuelve en 1 hora.', array( 'response' => '503') );
}
}
add_action( 'get_header', 'modo_mantenimiento_on' );
Lenguaje del código: PHP (php)

4. Restringir Contenido

Este código creará un shortcode con el cual el contenido que se encuentre entre los dos shortcodes, solamente se mostrará a los usuarios registrados. A los usuarios no registrados le mostrará un mensaje.

[registrados] contenido privado [/registrados]

add_shortcode( 'registrados', 'member_check_shortcode' );

function member_check_shortcode( $atts, $content = null ) {
if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )
return $content;
return 'Este contenido es solo para usuarios registrados';
}
Lenguaje del código: PHP (php)

5. Contador de Palabras Front End

Tenemos que copiar el siguiente código en nuestro plugin de funcionalidades o en nuestro archivo functions.php.

function wcount(){
ob_start();
the_content();
$content = ob_get_clean();
return sizeof(explode(" ", $content));
}
Lenguaje del código: PHP (php)

Y a continuación colocaremos la siguiente función de WordPress en la plantilla donde queremos que se muestre. ej.(content.php o content-single.php o content-page.php).

      echo wcount();

6. Migas de Pan

 Este es un código un poco más extenso que tendremos que pegar también en nuestro plugin de funcionalidades.

function dimox_breadcrumbs() {
$delimiter = '»';
$name = 'Home'; //text for the 'Home' link
$currentBefore = '<span class="current">';
$currentAfter = '</span>';
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '<div id="crumbs">';
global $post;
$home = get_bloginfo('url');
echo '<a href="' . $home . '">' . $name . '</a> ' . $delimiter . ' ';
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $currentBefore . 'Archive by category &#39;';
single_cat_title();
echo '&#39;' . $currentAfter;
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('d') . $currentAfter;
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $currentBefore . get_the_time('F') . $currentAfter;
} elseif ( is_year() ) {
echo $currentBefore . get_the_time('Y') . $currentAfter;
} elseif ( is_single() && !is_attachment() ) {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && !$post->post_parent ) {
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $currentBefore;
the_title();
echo $currentAfter;
} elseif ( is_search() ) {
echo $currentBefore . 'Search results for &#39;' . get_search_query() . '&#39;' . $currentAfter;
} elseif ( is_tag() ) {
echo $currentBefore . 'Posts tagged &#39;';
single_tag_title();
echo '&#39;' . $currentAfter;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $currentBefore . 'Articles posted by ' . $userdata->display_name . $currentAfter;
} elseif ( is_404() ) {
echo $currentBefore . 'Error 404' . $currentAfter;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</div>';
}
}
Lenguaje del código: PHP (php)

A continuación debemos modificar la plantilla donde queremos que se muestren las migas de pan pegando el siguiente código en la parte de la plantilla donde queremos que se muestren. (por lo general en la parte de arriba justo antes del contenido).

<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs();?>
Lenguaje del código: PHP (php)

7. Copyright al Final de cada Post

 Este código agregará un texto al final de cada post mostrando un texto y la fecha (año) que se actualiza automáticamente. El texto es completamente modificable. Sustituye ‘this article is copyright‘ por el texto que quieras.

function add_post_content($content) {
if(!is_feed() && !is_home()) {
$content .= '<p>This article is copyright © '.date('Y').' '.bloginfo('name').'</p>';
}
return $content;
}
add_filter('the_content', 'add_post_content');
Lenguaje del código: PHP (php)

8. Buscar solo Entradas

Si solamente te interesa que en el buscador de tu WordPress salgan resultados de posts y no se muestran resultados como por ejemplo la política de privacidad, la política de cookies u otras páginas que no te interese mostrarlas, simplemente pega este código en tu plugin de funcionalidades y el buscador de WordPress solamente te mostrará resultados de entradas.

function search_posts_filter( $query ){
if ($query->is_search){
$query->set('post_type',array('post','custom_post_type1', 'custom_post_type2'));
}
return $query;
}
add_filter('pre_get_posts','search_posts_filter');
Lenguaje del código: PHP (php)

9. Salto de Página

Este código añadirá el botón de salto de página en tu editor de WordPress. Con este botón podrás crear diferentes páginas dentro de un mismo post.

add_filter('mce_buttons','wysiwyg_editor');
function wysiwyg_editor($mce_buttons) {
$pos = array_search('wp_more',$mce_buttons,true);
if ($pos !== false) {
$tmp_buttons = array_slice($mce_buttons, 0, $pos+1);
$tmp_buttons[] = 'wp_page';
$mce_buttons = array_merge($tmp_buttons, array_slice($mce_buttons, $pos+1));
}
return $mce_buttons;
}
Lenguaje del código: PHP (php)

10. Taxonomías en las Entradas

Si necesitas crear más taxonomías por cualquier motivo en las entradas con este código agregaras dos más. Por defecto viene ‘Actors’ y ‘Genre’, pero puedes modificar el nombre a lo que tú quieras.

Si quieres añadir aún más, simplemente copia y pega otra línea igual debajo de la última y sustituye el nombre por el que tú quieras.

add_action( 'init', 'create_my_taxonomies', 0 );
function create_my_taxonomies() {
register_taxonomy( 'genre', 'post', array( 'hierarchical' => false, 'label' => 'Genre', 'query_var' => true, 'rewrite' => true ) );
register_taxonomy( 'actors', 'post', array( 'hierarchical' => false, 'label' => 'Actors', 'query_var' => true, 'rewrite' => true ) );
}
Lenguaje del código: PHP (php)

11. Eliminar Trackbacks Metabox

Si no usas la opción de enviar trackbacks este código te permite eliminarlo de tu escritorio de WordPress.

function remove_trackback_metabox() {
remove_meta_box( 'trackbacksdiv','post','normal' );
}
add_action('admin_menu','remove_trackback_metabox');
Lenguaje del código: PHP (php)

12. Donaciones con Paypal

 Este trozo de código creará un shortcode que mostrará un enlace directo a PayPal donde el usuario podrá realizar una donación.

Simplemente sustituye el e-mail de PayPal por el tuyo, personaliza el texto que quieres que se muestre e inserta el siguiente shortcode donde quieres que se muestre el enlace.

[donate]

function donate_shortcode( $atts, $content = null) {
global $post;extract(shortcode_atts(array(
'account' => 'pluginswebdudas@gmail.com',
'for' => $post->post_title,
'onHover' => 'Donar',
), $atts));

if(empty($content)) $content='Hacer una donación';
return '<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business='.$account.'&item_name=Donation for '.$for.'" title="'.$onHover.'">'.$content.'</a>';
}
add_shortcode('donate', 'donate_shortcode');
Lenguaje del código: PHP (php)

Si aún así no te queda clara la cosa, aquí te dejo un video donde probamos todos los códigos:

Nos vemos en el siguiente tutorial. Un saludo.

5/5 - (7 votos)
Compartir Artículo

Un comentario

  1. Fran Salas Master WP 1 año atrás

    Deja tus opiniones o dudas en los comentarios.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%