サポート » バグ報告と提案 » 新規投稿が出来ません に対するフォロー

  • はじめまして。

    既に閉じられたトピックでしたので改めて立てます。

    http://ja.forums.wordpress.org/topic/44 で「日本語を含むタイトルの新規投稿時における不具合」に関してですが、このトピックで閉められている修正内容ではデータベースへの問い合わせ結果が常に false となるため、タイトルが2重に重複している記事に関しては問題ありませんが、3重、4重となったとしても常に「記事タイトル-2」となり、結果パーマリンクが正しくないものになります。

    これはデータベースに格納されている post_name が既に URL エンコードされているため、URL デコードした記事タイトルでは等価にならないためです。

    $post_name_check = $wpdb->get_var($wpdb->prepare("SELECT post_name FROM $wpdb->posts WHERE post_name = '$alt_post_name' AND post_type = '$post_type' AND ID != %d AND post_parent = %d LIMIT 1", $post_ID, $post_parent));

    wpdb::prepare() では最後に渡された引数を元に vsprintf() を実行した結果を返しているため、上記の行を下記に修正する事で、重複した記事タイトル名にサフィックスを追加する処理が正しく終了します。

    $post_name_check = $wpdb->get_var($wpdb->prepare("SELECT post_name FROM $wpdb->posts WHERE post_name = '%s' AND post_type = '$post_type' AND ID != %d AND post_parent = %d LIMIT 1", $alt_post_name, $post_ID, $post_parent));

    それでは。

  • トピック「新規投稿が出来ません に対するフォロー」には新たに返信することはできません。