Funciones interesantes para WordPress (1)

Voy a comenzar una serie de entradas que tratan sobre WordPress. Como ya sabréis, WordPress permite tener en la carpeta del “theme” un fichero llamado functions.php en el que se pueden incluir una serie de funciones que se pueden ejecutar en cualquier lugar del diseño, o pueden ser funciones que sobre escriban, eliminen o amplíen algunas de las funciones que ya vienen en el sistema. No es muy recomendable pasarse poniendo funcione (ya que aumentarán las necesidades de recursos de la máquina) pero sí que es interesante tener en cuenta algunas de estas:

Añadir tu propio CSS en wp_nav_menu:

function custom_nav_class($classes, $item) {
  $classes[] = "custom-class";
  return $classes;
}
add_filter('nav_menu_css_class' , 'custom_nav_class' , 10 , 2);

Eliminar la versión de WordPress del RSS/Atom:

function remove_feed_generator() {
  return '';
}
add_filter('the_generator', 'remove_feed_generator');

Añadir un campo para Twitter y Facebook en la ficha del usuario, y mostrarlo en el listado de usuarios:

function add_contactmethods($contactmethods) {
  $contactmethods['twitter'] = 'twitter';
  $contactmethods['facebook'] = 'facebook';
  return $contactmethods;
}
add_filter('user_contactmethods','add_contactmethods',10,1);
function profile_links($actions, $user_object) {
  $actions['website'] = '<a href="'.$user_object->user_url.'">web</a>';
  $actions['facebook'] = '<a href="'.$user_object->facebook.'">fb</a>';
  $actions['twitter'] = '<a href="'.$user_object->twitter.'">tw</a>';
  return $actions;
}
add_filter('user_row_actions', 'profile_links', 10, 2);

Cambiar el color de las entradas en el panel de administración) según su estado:

function posts_status_color() {
?>
  <style>
  .status-draft { background: #FCE3F2 !important; }
  .status-pending { background: #87C5D6 !important; }
  .status-publish { /* por defecto */ }
  .status-future { background: #C6EBF5 !important; }
  .status-private { background: #F2D46F; }
  </style>
<?php
}
add_action('admin_footer','posts_status_color');

Enviar al resultado cuando sólo hay uno en una búsqueda:

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

Y por hoy ya está… próximamente algunos códigos más.

Deja un comentario