1

Wordpress は投稿のタイトルをパーマリンクに変換します。これは素晴らしいことです。唯一のことは、ハイフンの代わりにアンダースコアが必要なことです。簡単な解決策はありますか?

4

5 に答える 5

4

次のファイルを探します。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を自分で作成します。

于 2009-11-13T11:32:24.967 に答える
4

主にSEO の問題から、私はそれをしません。

そうする具体的な理由はありますか?私がここで読んだすべての解決策は、ワードプレスのコアをハッキングすることに関するものであり、システムを更新するたびに、これらすべてのファイルを再度編集することになります。(実際、2.8.6 は昨日入手可能でした。古いバージョンを使用している場合は、2 回変更する必要があります)。

于 2009-11-13T14:13:52.510 に答える
2

wp-includes/formatting.php で関数 sanitize_title_with_dashes() を探します

ハイフンの代わりにアンダースコアを使用するように preg_replace への呼び出しを変更します。

于 2009-11-13T10:37:33.520 に答える
2

WordPress のコア ファイルを変更することはお勧めしません。サイトをアップグレードするとすぐに作業内容が失われます。プラグインを作成するか、これをテーマの functions.php ファイルに入れることができます。

add_filter( 'sanitize_title', 'dashes_to_underscore' );
function dashes_to_underscore( $title ){
    return str_replace( '-', '_', $title );
}
于 2009-11-17T23:09:42.857 に答える
0
function sanitize_title_with_underscore( $title )
{
    $text_to_transform =   sanitize_title_with_dashes( $title);
    return str_replace( '-', '_', $text_to_transform );
}
于 2013-07-19T11:27:32.750 に答える