web-dev-qa-db-fra.com

Convertir un trait d'union en trait de soulignement en permaliens

Je voudrais utiliser trait de soulignement dans mes permaliens au lieu de trait d'union.

Permalien actuel:

www.example.com/2013/01/hello-this-is-a-test-post/

Permalien souhaité

www.example.com/2013/01/hello_this_is_a_test_post/

J'ai essayé quelques solutions mentionnées ici dans stacexchange. Mais ils ne travaillaient pas.

3
Giri

Toscho m'a conseillé comme ça.

Google traite - en tant que séparateur de mots, mais pas _. Vous allez vous faire mal. :)

Il était vrai à 100%. Voici un article qui l'explique. J'ai donc abandonné l'idée.

Mais si vous cherchez toujours une solution, voici la réponse.

Répondu par cet utilisateur stackoverflow

Cherchez le fichier suivant: wp-includes/formatting.php

Passez à la fonction sanitize_title_with_dashes. Vous trouverez cette section de code à l'intérieur:

$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = str_replace('.', '-', $title);
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', '-', $title);
$title = preg_replace('|-+|', '-', $title);
$title = trim($title, '-');

Remplacez tous les tirets/traits d'union (-) par des traits de soulignement (_) comme suit:

$title = strtolower($title);
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = str_replace('.', '_', $title);
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
$title = preg_replace('/\s+/', '_', $title);
$title = preg_replace('|-+|', '_', $title);
$title = trim($title, '_');

Notez que toutes les publications que vous avez créées avant cette modification et qui s'appuient sur la balise de structure %postname%, permalien, seront cassées.

Dans ce cas, vous devrez revenir en arrière et republier ces publications pour que les tirets soient échangés contre les traits de soulignement. Ou écrivez vous-même un peu de SQL pour les remplacer.

0
Giri

Au départ, je l’avais fait, mais à chaque nouvelle mise à jour vers Wordpress, je devais modifier à nouveau manuellement le manuel, et j’ai donc créé ce plugin au cas où cela aiderait quelqu'un: http://wordpress.org/plugins/underscores-in-permalinks/

0
Joey Wohleb