web-dev-qa-db-ja.com

パーマリンクでハイフンをアンダースコアに変換する

私のパーマリンクでは、ハイフンの代わりにアンダースコアを使いたいのです。

現在のパーマリンク:

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

望ましいパーマリンク

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

私は試してみました いくつかの解決策 ここでstacexchangeで言及しました。しかし、彼らは働いていませんでした。

3
Giri

Toscho このようにアドバイスした。

Googleは - を単語の区切り文字として扱いますが、_は扱いません。あなたは自分を傷つけるでしょう。 :)

彼は100%真実でした。これが 記事 です。それで私はその考えを落とした。

それでも解決策を探しているのであれば、それが答えです。

このstackoverflowユーザーに回答

次のファイルを探します。wp-includes/formatting.php

sanitize_title_with_dashes関数にジャンプします。このセクションのコードがあります。

$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, '-');

以下のように、すべてのダッシュ/ハイフン(-)をアンダースコア(_)に置き換えます。

$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, '_');

この変更の前に作成し、%postname%パーマリンク構造タグに依存している投稿はすべて破損することに注意してください。

その場合は、ダッシュがアンダースコアに置き換えられるように、戻ってそれらの投稿を再公開する必要があります。あるいは、単にそれらを置き換えるための小さなSQLを自分で書いてください。

0
Giri

コードやプラグインを使用せずに簡単に行うことができます。ダッシュボードのページに移動し、[クイック編集]をクリックして、変更するURLを指定します。アンダースコアを追加します。更新して完了

0
Md. Elias

私は最初にこれを行いましたが、Wordpressを更新するたびに手動で変更しなければならないので、誰かに役立つようにこのプラグインを作りました: http://wordpress.org/plugins/underscores-in-permalinks/

0
Joey Wohleb