Sur les pages de post-édition, lorsqu'un slug dépasse un certain nombre de caractères, Wordpress la raccourcit avec un Ellipsis (...
). Par exemple, si mon slug est i-want-to-be-able-to-see-this-slug
, il apparaît sur la page d'édition comme suit:
Lien permanent:
http://example.com/2012/i-want-to-be-a...-see-this-slug/
[Modifier]
Puis-je empêcher Wordpress de faire cela?
J'aime pouvoir voir (et copier) une URL complète sans dissimulation. Je meurs d'envie de savoir comment me débarrasser de cette fonctionnalité.
Il y a un filtre à la fin de la fonction: 'get_sample_permalink_html'
. Accrochez-vous et remplacez simplement la forme raccourcie par toute la longueur.
<?php # -*- coding: utf-8 -*-
/* Plugin Name: T5 Unabridge Permalink Slug */
add_filter( 'get_sample_permalink_html', 't5_unabridge_sample_permalink', 10, 2 );
/**
* Replaces the shortened permalink with its full form.
*
* @param string $sample Permalink HTML
* @param int $id Post ID
* @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
);
}
Titre du message: Ceci est un titre assez long. WordPress le raccourcirait par défaut, mais notre plugin Nice l’empêche.
Ce n’est pas possible via un filtre ou un crochet d’action, WordPress coupe les cordes très fort. voir la ligne 1110 de wp-admin/includes/post.php dans WP 3.4alpha
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;
}
}
Vous pouvez ouvrir un ticket sur le Trac de WordPress pour inclure un filtre.