違法な文字を含む古いパーマリンク (投稿、ページ、タグ) がいくつかありますが、これらはもう機能していません。
以前のバージョンの WP では非ラテン文字を使用できましたが、新しいバージョンでは変更されました。
これらのパーマリンクからデータベースをきれいにする方法はありますか (パーマリンクを許可された形式に変換します)?
sanitize_title( $title);
すべての投稿でワードプレス機能を使用でき ます
$posts = get_posts(array('post_type' => array('post', 'page'))
foreach($posts as $post)
{
$post[post_name] = sanitize_title( $title);
wp_update_post( $post );
}
文字が何であり、それらを何に置き換えたいかがわかっている場合は、単純な PHP スクリプトを記述してデータベースからデータを取得し、使用preg_replace()
して PHP 側で文字を修正し、その修正でテーブルを更新できます。 . これが私が思いついた簡単な例です:
$query = "SELECT field, primarykey FROM table WHERE field LIKE "(weird character)";
/* run the query, blah blah */
$result = mysql_query($query);
$weird_character = "/weird character/";
$good_character = "good character";
$replace = "UPDATE table SET field='$field' WHERE field='$row['field']'";
while($row=mysql_fetch_array($result, MYSQL_ASSOC))
{
$field = preg_replace($bad_character, $good_character, $row['field']);
$replace_result = mysql_query($replace);
}
膨大な数のリンクがある場合、これには永遠に時間がかかります。少量の場合、これは十分に効率的であるはずです。いずれにせよ、実行するのは 1 回だけです。
もちろんURLを変更する必要がある場合は、標準のワードプレス関数esc_url_rawを使用することもできます。この関数は、無効な文字を削除し、危険な文字を削除し、URLに適切なプロトコルセット(http、https、ftpなど)が設定されていることを確認できます。
esc_url_raw( $current_url );