ummo3さん、こんにちは。
エラー内容からお答えするわけではないのですが、
少し思い当たる点があったのでコメントさせて頂きます。
DB移設時、DB内のドメインを書き換えたと思います。
その際、wp_options や wp_postmeta のなかのシリアライズされたデータが書き換えられていないのではないでしょうか。
以前にシリアライズの書き換えが出来ていないと、
動かなくなるプラグインがでてくると助言を頂いたことがありましたので。。
※Image Widget や Trust Form
コマンドが使えるサーバだと下記サイトが参考になると思います。
http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/
もしコマンドが使いないサーバはこちらが参考になるのではと思います。
http://webcre-archive.com/2012/10/04/wordpress-db-url-replace/
ryu263様 回答ありがとうございます。
早速、教えていただいた方法(「もしコマンドが使いないサーバ」の方)で
試してみました。
しかし他のページは正常に書き換えられたのですが
Trust Formだけ同じエラーがでてしまいました…
その他、何か考えられることはないでしょうか?
それか、また一から設置し直してみようかとも思い、
一度削除して、再度インストールも試したいのですが
ダッシュボードのプラグインから削除しようとすると
FTP情報を入力する項目が表示されましたが
FTPしか選べず、ここから削除することができませんでした。
※サーバーはSFTPです。
サーバから直接プラグインフォルダを削除しても
恐らくデータベースにデータが残ってしまいます。
※実はその状態で新しいTrust Formをダウンロードして
サーバにアップロードして有効化してみました。
するとデータが残っていました。
すべてクリーンにするには、何か方法はありますでしょうか。
よろしくお願いいたします。
何度もすみません。
エラーの出たmake-form.php on line 21の記述は
do_meta_boxes( ‘trustform’, ‘advanced’, &$this );
でした。
前後は下記のようになっています。
<?php
add_meta_box( ‘standard-form’, __( ‘Standard Field’, TRUST_FORM_DOMAIN ), ‘trustform_standard_form_meta_box’, ‘trustform’, ‘advanced’, ‘core’ );
add_meta_box( ‘advanced-form’, __( ‘Advanced Field’, TRUST_FORM_DOMAIN ), ‘trustform_advanced_form_meta_box’, ‘trustform’, ‘advanced’, ‘core’ );
do_meta_boxes( ‘trustform’, ‘advanced’, &$this );
wp_nonce_field( ‘meta-box-order’, ‘meta-box-order-nonce’, false );
wp_nonce_field( ‘closedpostboxes’, ‘closedpostboxesnonce’, false );
function trustform_standard_form_meta_box() {
?>
もし何か考えられることがあればよろしければアドバイスお願いします!
ummo3さん、こんにちは。
ドメイン書き換えですが手順は下記でされてますか?
1) 一度DB内をすべて削除(念のため削除前にバックアップ)
2) 正常なDBをインポート
3) 「もしコマンドが使えないサーバ」の方を実行
最近の私の経験ですが、
「もしコマンドが使えないサーバ」の場合、
サーバ移設前にエラーが出ていなければ、
本番環境でもエラーは出ていないですね。
一度データベース内検索で、
旧ドメインが残っていないか確認してみるのもいいかと思います。
作業手順があっていて、DB内に旧ドメインが残っていないようでしたら、
ドメイン関連ではなく他の原因かもしれませんね。。
ryu263様 回答ありがとうございます!
お礼が遅くなってしまい申し訳ありません。
一度すべて削除し、改めて
1) 一度DB内をすべて削除(念のため削除前にバックアップ)
2) 正常なDBをインポート
3) 「もしコマンドが使えないサーバ」の方を実行
を実行しましたが、Trast formにエラーが出てしまいました。
>作業手順があっていて、DB内に旧ドメインが残っていないようでしたら、
>ドメイン関連ではなく他の原因かもしれませんね。。
上記を聞いて、もしかしたらサーバが怪しいかもしれません。
Trast FormなどWordpressのプラグインで作られているフォームの
動作環境は、どこで確認すれば良いかご存知でしょうか?
下記アドレスをみてみましたが、見当たらないので。。
http://wordpress.org/extend/plugins/trust-form/
何度もしつこく聞いて申し訳ありません。
よろしければアドバイスお願いします。
ummo3さん
プラグインのサイトに、
Requires: 3.3 or higher
Compatible up to: 3.4.2
と書かれてあるので、
使用されているWordPressのバージョン(3.4.2)には問題はないのですが、
PHPやMySQLのバージョンを確認してみてはどうでしょうか。
ryu263様 回答ありがとうございます。
サーバを確認すると、下記のようになっていました。
PHP/5.4.6
Apache/2.4.3
libmysql – mysqlnd 5.0.10
アドバイス頂いた下記ですと、
PHPやMySQLのバージョンはいくつという
意味なのでしょうか…?
Requires: 3.3 or higher
Compatible up to: 3.4.2
聞いてばかりで申し訳ありません。
よろしくお願いします。
ummo3さん
MySQLが 5.0.10 とのことですが、
サーバ要件には、
WordPress3.2系の場合、MySQLは 5.0.15 以上と書いてあるので、
一度 XAMPP や MAMP など、
サーバ要件を満たしている環境で、
検証してみてはどうでしょうか?
ryu263様 回答ありがとうございます。
アドバイスいただいたように、色々とサーバ環境を確認していたのですが
納期が迫ってしまい、結局Trast Formをあきらめることに致しました…
そのため、ここで解決表示にさせていただきます。
ここまで相談にのってくださって
本当にありがとうございました!
スレッドは解決済みになっていますが、たまたま原因がわかったので書きます。
この件の原因は、
・PHPが5.4であること
・プラグイン内での、変数の書き方がPHP5.4でひっかかっていること
でした。
Fatal error: Call-time pass-by-reference has been removed; If you would like to pass argument by reference, modify the declaration of do_meta_boxes(). in /public_html/wp-content/plugins/trust-form/admin/make-form.php on line 21
のエラーメッセージ内の「Call-time pass-by-reference has been removed」の部分が、PHP5.4の場合にのみ発生するものです。
参考ページ PHP: リファレンス渡し – Manual
このページには以下のようなに書かれています。
以前のバージョンの PHP では foo(&$a); のような形式で & を利用すると “Call-time pass-by-reference” という警告が発生していましたが、 PHP 5.3.0 以降では警告は発生しません。 また、PHP 5.4.0 以降では call-time pass-by-reference 機能自体が削除されたので、 これを使おうとすると fatal エラーが発生します。
つまり、プラグインのエラーが出ている箇所の記述
do_meta_boxes( 'trustform', 'advanced', &$this );
の、&$this の形式が、PHP5.4環境下でのエラーの原因と考えられます。
取り急ぎ、&$this → $thisに変えて動かしましたが、今後のバージョンでこのあたりが解消されることを、プラグイン作者さんを心から応援しつつ期待して待ちたいと思います!!
どうもTrust Formの作者です
現上、こちらのバグについては、Trac上では修正しております。
http://plugins.trac.wordpress.org/changeset/646681
1月末くらいには次のバージョンを出せると思うので、そこで修正版がお届けできます。
現在Trust Formを1.5にバージョンアップしています。
PHP5.4以降で動かないエラーについては解消しています