以下のコードはプラグインファイルに含まれています。それはちょうどwpデータベースに対して更新クエリを実行しようとしています。ただし、致命的なエラーが発生します。
Fatal error: Cannot redeclare ce3_cleanup()
$ wpdb-> queryにアクセスするために設定ファイルをロードする必要がありますか?
function ce3_cleanup()
{
$wpdb->query("update wp_postmeta set meta_key=replace(meta_key,'cb2_customHeader','_cb2_customHeader') where meta_key like 'cb2_customHeader'");
$wpdb->query("update wp_postmeta set meta_key=replace(meta_key,'cb2_customTitle','_cb2_customTitle') where meta_key like 'cb2_customTitle'");
}
register_activation_hook(__FILE__, 'ce3_cleanup');
?>
その関数を書くためのお勧めの方法は次のとおりです。
function ce3_cleanup() {
global $wpdb;
$wpdb->query( "update $wpdb->postmeta set meta_key=replace(meta_key,'cb2_customHeader','_cb2_customHeader') where meta_key like 'cb2_customHeader'" );
$wpdb->query( "update $wpdb->postmeta set meta_key=replace(meta_key,'cb2_customTitle','_cb2_customTitle') where meta_key like 'cb2_customTitle'" );
}
register_activation_hook( __FILE__, 'ce3_cleanup' );
いいえ、Cannot redeclare...
は、あなたのサイトのどこかにce3_cleanup()
という名前の関数が既に存在することを意味します。おそらく他のプラグインかあなたのテーマにあります。