2012-01-11 3 views
0

현재 functions.php를 통해 사용자 지정 WordPress 관리 페이지를 만들고 있습니다. 이 페이지가 기본적으로 SQL 데이터베이스 (WordPress와 관련 없음)에서 정보를 검색하여 방문자에게 표시하기를 원합니다. 괜찮 으면 좋겠지 만,이 코드를 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() 호출 주변에 조건을 추가하지 않는 한 모든 페이지로드에 대해 쿼리를 실행합니다. 하나의 페이지에서만 실행할 수있는 여러 가지 방법이 있지만 두 가지 가장 쉬운 방법은 wordpress '전역 변수'pagenow '를 사용하거나 $ _SERVER 변수 중 하나를 사용하여 동일한 작업을하는 것입니다 ($ _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'); 
}