Warning: implode() [function.implode]: Invalid arguments passed in
Warning: implode() [function.implode]: Invalid arguments passed in /wp-includes/post.php on line 1980
これが昨日、Wordpress2.92 + PDO(SQLite for Wordpress 2.7)環境でサイトを構築した際に新規ページ追加や既存ページの編集で出る様になりました。
ウエブの記事を元に/wp-includes/post.phpを修正したところこのエラーは出なくなりました。
line 2155
$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . implode("', '", esc_sql($hierarchical_post_types)) . "' ) AND ID != %d AND post_parent = %d LIMIT 1";
↓
$hierarchical_post_types_string = implode("', '", $hierarchical_post_types);
$hierarchical_post_types_string = addslashes($hierarchical_post_types_string);
$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . $hierarchical_post_types_string . "' ) AND ID != %d AND post_parent = %d LIMIT 1";
に変更しました。
実際にこれでよいのか確信はありませんが、上記の「post_name」というフィールドの値を選択する際に使用している「esc_sql」という関数がPDOでは使えないのではないかと考えています。(SQL文字列の中に[']があったら['']に変えるなどの処理をしてくれる関数だと思うッス^^)
その代替案として問題の「$check_sql」から始まるSQL文の前に2行の変換処理を入れているのではないかと。
参考記事
ブログランキング↓↓↓に参加しております。クリックしていただけると励みになります^^b
2010年04月15日 08:41 | コメント(0) | トラックバック(0)
カテゴリ:サイト製作TIPS:
楽天ブログって相変わらず… | TOP | KtaiStyleを意識したサイト量産
トラックバック&コメント
このブログのその他の気になる情報♪♪







