2017-04-10 9 views
1

Wordpressプラグインを開発していますが、すべてのページでアクションを実行したいと思います。しかし、私のプラグインは、その一部を使っているページ、例えばショートコードを訪れた場合にのみ動作するようです。他のすべてのページでは、何もしません。特定のページで使用されていなくても、プラグインのフックを実行するようにWordpressに指示するにはどうすればよいですか?プラグインのフィルタとアクションはどこでも実行されません

私はこのコードでテストしました。私のプラグインで登録されたショートコードを使っているページを開くと "HUH?"ページの一番上に表示されます。他のページには何もありません。

add_action('init', 'myplugin_init'); 
function myplugin_init() { 
    echo 'HUH?'; 
} 

答えて

0

"HUH?"ログインページとすべての管理ページにメッセージが表示されます。私はたくさんのグーグルで探偵コーデックスでこの記事を見つけた:https://codex.wordpress.org/Function_Reference/is_plugin_active。その結果、テーマのfunctions.phpにラインを追加する必要がありました。これは、プラグインがデフォルトでフロントエンドに読み込まれないためです。だからここソリューションは、あなたのfunctions.phpに次の行を追加し、次のとおりです。

include_once(ABSPATH . 'wp-admin/includes/plugin.php'); 
0

あなたのコードは条件付きコードの子として配置されています。たとえば、次のようなものがあります。

if($condition == true) 
{ 
    add_action('init', 'function_to_call'); 
} 

メインプラグインファイルにコードを置き、結果を確認します。 私はそれが動作することを願っています。

+0

私はどのラッパー条件なしで、私のメインのファイルにこのコードを配置し、表示したページを直接呼び出していない限り、それは動作しません。私のプラグインの1つは機能/ショートコード... –

+0

私のメインファイルの最初の数行は次のようになります:https://s12.postimg.org/yofefy4u5/whatthe.png –

関連する問題