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