Cómo evitar que WordPress acorte los slugs largos en el panel de administración
En las páginas de edición de entradas, cuando un slug supera un cierto número de caracteres, WordPress lo acorta con puntos suspensivos (...
). Por ejemplo, si mi slug es quiero-poder-ver-este-slug-completo
, aparece en la página de edición así:
Enlace permanente:
http://ejemplo.com/2012/quiero-poder-ve...-slug-completo/
[ Editar ]
¿Puedo evitar que WordPress haga esto?
Me gustaría poder ver (y copiar) una URL completa sin abreviaturas, así que estoy deseando descubrir cómo eliminar esta característica.

Hay un filtro al final de la función: 'get_sample_permalink_html'
. Conéctate a este y simplemente reemplaza la forma abreviada con la versión completa.
<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 Unabridge Permalink Slug */
add_filter( 'get_sample_permalink_html', 't5_unabridge_sample_permalink', 10, 2 );
/**
* Reemplaza el permalink acortado con su forma completa.
*
* @param string $sample HTML del permalink
* @param int $id ID del post
* @return string
*/
function t5_unabridge_sample_permalink( $sample, $id )
{
$link = get_sample_permalink( $id );
$s1 = '<span id="editable-post-name" ';
$s2 = '</span>';
return preg_replace(
'~' . $s1 . '([^>]*)>([^<]*)' . $s2 . '~Ui',
$s1 . '$1>' . $link[1] . $s2,
$sample
);
}
Resultado
Título del post: Este es un título de post bastante largo. WordPress lo acortaría por defecto, pero nuestro bonito plugin lo evita.

No es posible mediante un filtro o un hook de acción. WordPress corta las cadenas de forma rígida en el núcleo. Consulta wp-admin/includes/post.php
línea 1110
en WP 3.4 alpha.
if ( function_exists('mb_strlen') ) {
if ( mb_strlen($post_name) > 30 ) {
$post_name_abridged = mb_substr($post_name, 0, 14). '…' . mb_substr($post_name, -14);
} else {
$post_name_abridged = $post_name;
}
} else {
if ( strlen($post_name) > 30 ) {
$post_name_abridged = substr($post_name, 0, 14). '…' . substr($post_name, -14);
} else {
$post_name_abridged = $post_name;
}
}
Puedes abrir un ticket en el Trac de WordPress para incluir un filtro.

Como menciona @bueltge en su respuesta, actualmente no hay un filtro o gancho (hook) de acción que permita esto. Aquí está el truco que hice para evitar la abreviación con ...
.
En el archivo wp-admin/includes/post.php
, busca esta línea (en WordPress 3.4.1, es la línea 1117):
$post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name_abridged . '</span>';
Cámbiala por esto:
// Cambiado $post_name_abridged por $post_name para evitar abreviación "..." en slugs largos
$post_name_html = '<span id="editable-post-name" title="' . $title . '">' . $post_name . '</span>';
Por supuesto, como esto edita un archivo del núcleo, el cambio se sobrescribirá cada vez que una nueva versión de WordPress actualice este archivo.
Si alguien puede recomendar una forma de lograrlo sin modificar el núcleo, ciertamente preferiría eso antes que esta solución.
