2012-02-23 5 views
1

플러그인을 개발 중입니다. 실행중인 문제 중 하나는 admin_init 후크에 지정된 함수 내에서 게시 ID를 가져올 수 없다는 것입니다.admin_init에서 wp_query가 비어 있습니다.

나는 몇 가지 다른 방법을 시도했다. 하지만 그들은 모두 $ wp_query를 사용하는 것 같습니다.

다음은 사용중인 코드의 간단한 버전입니다. 편집 - 난 그냥 지금과 같이 코드를 구현하고, 대부분은 빈 배열

add_action('admin_init','do_optional_featured_article'); 
function do_optional_featured_article() 
{ 
    global $wp_query; 
    echo "<pre>"; 
    print_r($wp_query); 
    echo "</pre>"; 
    die(); 
} 

$의 wp_query 인 "포스트 편집"페이지를 확인하여 그것을 실행, 특히, 포스트 멤버

이 비어 -

나는 wordpress.stackexchange에서 몇 가지 조언을 통해 가지고이 기능 추가 :

function get_admin_post() 
{ 
    if(isset($_GET['post'])) 
    { 
     $post_id = absint($_GET['post']); // Always sanitize 
     $post = get_post($post_id); // Post Object, like in the Theme loop 
     return $post; 
    } 
    elseif(isset($_POST['post_ID'])) 
    { 
     $post_id = absint($_POST['post_ID']); // Always sanitize 
     $post = get_post($post_id); // Post Object, like in the Theme loop 
     return $post; 
    } 
    else 
    { 
     return false; 
    } 
} 

답변

2

내가 this answer이 도움이 될 것입니다 생각합니다. 글로벌 $post/$posts 변수를 얻으려면 가장 먼저 취해야 할 조치는 wp입니다. 액션 후크 reference on the codex에서, 액션이 admin_init 다음에 조금씩 실행된다는 것을 알 수 있습니다. 그 이유는 거기에서 게시물을 검색 할 수 없기 때문입니다.

그래서, 그 작업을해야합니다 :

add_action('wp','do_optional_featured_article'); 
+0

이 그냥 나를 도왔다. 건배 –

관련 문제