Funciones interesantes para WordPress (3)

Y una nueva entrega de la serie de entradas sobre funciones interesantes para WordPress y más funciones interesantes para WordPress.

Eliminar palabras de menos de 3 letras en la URL al crearse:

function remove_short_words($slug) {
  if (!is_admin()) return $slug;
  $slug = explode('-', $slug);
  foreach ($slug as $k => $word) {
    if (strlen($word) < 3) {
      unset($slug[$k]);
    }
  }
  return implode('-', $slug);
}
add_filter('sanitize_title', 'remove_short_words');

Mostrar un bloque con la URL corta de cada entrada en su panel:

function shortlink_add_column($cols) {
  $cols['shortlink'] = 'Enlace Corto';
  return $cols;
}
function shortlink_add_value($column_name, $post_id) {
  if ('shortlink' == $column_name) {
    echo '<input type="text" value="'.wp_get_shortlink($post_id).'" onclick="this.focus(); this.select();">';
  }
}
function shortlink_sortable_column($columns) {
  $columns['shortlink'] = 'Enlace Corto';
  return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'shortlink_sortable_column');
add_filter('manage_posts_columns', 'shortlink_add_column');
add_action('manage_posts_custom_column', 'shortlink_add_value', 10, 2);

Los usuarios (no admin) sólo pueden ver su librería multimedia:

function my_files_only($wp_query) {
  if(strpos($_SERVER['REQUEST_URI'], '/wp-admin/upload.php') !== false) {
    if(!current_user_can('level_5')) {
      global $current_user;
      $wp_query->set('author', $current_user->id);
    }
  }
}
add_filter('parse_query', 'my_files_only');

Los usuarios (no admin) sólo pueden ver sus entradas:

function posts_for_current_author($query) {
  global $pagenow;
  if('edit.php' != $pagenow || !$query->is_admin)
    return $query;
  if(!current_user_can('manage_options')) {
    global $user_ID;
    $query->set('author', $user_ID);
  }
  return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

Ver más botones en el Tinymce HTML:

function fb_change_mce_options($initArray) {
  $ext = 'pre[id|name|class|style],iframe[align|longdesc|name|width|height|frameborder|scrolling|marginheight|marginwidth|src]';
  if(isset($initArray['extended_valid_elements'])) {
    $initArray['extended_valid_elements'] .= ','.$ext;
  } else {
    $initArray['extended_valid_elements'] = $ext;
  }
  return $initArray;
}
add_filter('tiny_mce_before_init', 'fb_change_mce_options');

Categorías WordPress

Deja un comentario