2012-01-11 17 views
0

私は現在、functions.phpでカスタムWordPressの管理ページを作成しています。私はこのページが基本的に(ワードプレスとは無関係の)SQLデータベースから情報を検索し、それを訪問者に表示したいと考えています。私はそれを行うことはできますが、もし私がfunction.phpにこのコードを貼り付けると、どのページに関係なく、すべてのページリクエストでそのSQLコードがかなり動くでしょうか?WordPressの管理ページのMySQL機能

function mytheme_add_admin() { 
add_menu_page('Members', 'Members', 'moderate_comments', 'members', 'mytheme_admin'); 
} 

function mytheme_admin() { 
?> 
#all the code for my page here 
<?php } 

add_action('admin_menu', 'mytheme_add_admin'); 

は「ここに私のページのためのコードを#ALL」SQLデータをつかむためにHTMLやPHPのビットを次のようになります。ここに私の機能はかなりファイルです。特定の管理者ページを表示するときにのみこれを行う方法はありますか?

答えて

0

これは、関数自体に(または)(好ましくは)add_action()呼び出しの周りに条件を追加しない限り、すべてのページの読み込み時にクエリを実行します。 1つのページでのみ実行する方法はいくつかありますが、2つの最も簡単な方法は、wordpressの組み込みグローバル変数 'pagenow'を使うか、$ _SERVER変数の1つを使って同じものを実行することです($ _SERVER [例えばREQUEST_URI '])

if (in_array($GLOBALS['pagenow'], array(pages this should show up on))){ 
    add_action('admin_menu', 'mytheme_add_admin'); 
} 

又は

if (in_array($_SERVER['REQUEST_URI'], array(pages this should show up on with path from root))){ 
    add_action('admin_menu', 'mytheme_add_admin'); 
} 
関連する問題