3

csvデータをワードプレステーブルにインポートするプラグインがあります。Wordpressダッシュボードを介して実行され、詳細を入力し、ボタンをクリックして実行します。

入力データが静的(毎回同じcsvから)になり、すべてが1つのphpファイルに配置されるようにプラグインを変更しました。このスクリプトを1時間程度ごとに実行するようにCronジョブをスケジュールしたいと思います。

cPanelを使用してphpファイルに直接アクセスして設定しようとしましたが、機能しません(何も表示されません)。これは、プラグインがwp_insert_postなどのワードプレス関数を使用しているためだと思います。

スケジュールされたイベントとして、WordPressダッシュボードを介して実行されたかのように、このスクリプトを実行するにはどうすればよいですか?

注:ファイルにはjavascriptも含まれています。

4

3 に答える 3

4

管理者側の機能にアクセスするには、2つのファイルを含める必要があります。まず、wp-load.phpです。wp-load.phpはすべてをセットアップし、wordpressを起動します。ただし、この関数は、(adminディレクトリではなく)コンテンツディレクトリ内のプラグインフォルダから呼び出しているため、wp-loadが呼び出された場合、adminセクションには移動せず、アクセスも取得されません。それらの機能に。明るい面としては、WordPressにログインを強制する必要もありません。これらの管理機能は引き続き必要なので、wp-admin/admin-functions.phpを含めます。これにより、管理者側が読み込まれ、管理機能にアクセスできるようになります。

于 2012-12-06T09:55:31.057 に答える
2

wp_schedule_eventを使用する必要があります。こちらのWordPressコーデックスを参照してください:http://codex.wordpress.org/Function_Reference/wp_schedule_event。次のようなものを使用します。

            register_activation_hook(__FILE__, 'my_activation');
            add_action('my_hourly_event', 'do_this_hourly');

            function my_activation() {
                wp_schedule_event( time(), 'hourly', 'my_hourly_event');
            }

            function do_this_hourly() {
                // do something every hour
            }

関数内でPHPファイルを完全に呼び出すことができますdo_this_hourly()

于 2012-12-06T10:24:27.960 に答える
0

受け入れられた答えは私にとってうまくいきました。私はこれを変更しました、そしてここに私の発見があります。プラグインシナリオの外でこのソリューションを使用できる場合があります。基本的に、次のようにネイティブのワードプレス機能を使用してcronジョブを使用してサーバーを実行できます。WordPressアプリのトップレベルでファイルを作成してから、include /wp-load.php;その中にファイルを作成できます。

これはネイティブワードプレスに読み込まれ、プラグインを使用する必要がある一部として定義できるクラスを呼び出すことができます。次に、基本的なワードプレスの機能$wpdbget_usermeta()

これで、クラスをインスタンス化でき$class_variable = new YourClass;、そこからクラス関数を呼び出すことができます。これの大きな部分は、サーバー上で通常行うようにcronジョブをスケジュールできることです。また、実行すると、wordpress内で実行するようにwordpress関数を実行できます。これは、プラグインの一部としてcronジョブを維持する必要がないことを意味します。これは、何をしているのかによって役立つ場合と役に立たない場合があります。

于 2013-04-17T01:09:39.187 に答える