3

私は現在ワードプレスプラグインを書いています、そして私はいくつかの問題に遭遇しました。プラグインのアクティブ化時に関数が実行されません...誰かが問題の場所を教えてもらえますか?


クラスmy_plugin{

    public $ ajaxurl;
    public $ excanvas;
    public $ plugin_path ='';

    関数__construct()
    {{

        register_activation_hook(__ FILE __、array(&$ this、'install'));
    }


    パブリック関数wpmon_install()
    {{
        //ページテンプレートを現在のテーマにコピーします。

        $ plugin_path = getcwd()。DIRECTORY_SEPARATOR。'wp-content'。DIRECTORY_SEPARATOR。「プラグイン」。DIRECTORY_SEPARATOR。'wpmon'。DIRECTORY_SEPARATOR;
        $ target_path = get_stylesheet_directory()。DIRECTORY_SEPARATOR;
        $ target_path = str_replace('/'、DIRECTORY_SEPARATOR、$ target_path);
        $ template_files = glob($plugin_path。'page_template'.DIRECTORY_SEPARATOR。'*。php');

        foreach($ template_files as $ files)
        {{
            $ basename = basename($ files);
            試す{
                $ target =$target_path。$ basename;
                copy($ files、$ target);

            }
            catch(例外$ e){

                $ this-> log_error($ e-> getMessage());
            }
        }
    }

しかし、残念ながら、インストール関数は機能していません...しかし、クラス外では、「install」関数内のこのコードは機能しています

4

3 に答える 3

0

ソフトリンクを使用しているかどうかを確認してください。プラグインは正確に にある必要があります。/path/to/wordpress/wp-content/plugins/yourpluginつまり、それはソフトリンクでyourpluginはありません。

于 2013-07-24T10:01:08.650 に答える
0

投稿されたコードから、2 つの問題を確認できます。install を wpmon_install に変更する必要があります。また、クラスを初期化するコードを追加する必要があります。

つまり$wp_mon = new my_plugin();、その後class my_plugin { }

于 2012-09-27T05:52:58.560 に答える
-1

クラスで呼び出される関数を呼び出そうとする Wordpress がありinstallますが、存在しません。変更してみてください:

register_activation_hook(__FILE__,array(&$this, 'install'));

register_activation_hook(__FILE__,array(&$this, 'wpmon_install'));
于 2012-09-27T05:47:14.113 に答える