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.

Tabla de Contenido
- 1. Categorías en las Páginas
- 2. Eliminar Campo Web en Comentarios
- 3. Modo Mantenimiento
- 4. Restringir Contenido
- 5. Contador de Palabras Front End
- 6. Migas de Pan
- 7. Copyright al Final de cada Post
- 8. Buscar solo Entradas
- 9. Salto de Página
- 10. Taxonomías en las Entradas
- 11. Eliminar Trackbacks Metabox
- 12. Donaciones con Paypal
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 '';
single_cat_title();
echo ''' . $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 '' . get_search_query() . ''' . $currentAfter;
} elseif ( is_tag() ) {
echo $currentBefore . 'Posts tagged '';
single_tag_title();
echo ''' . $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.




Deja tus opiniones o dudas en los comentarios.