programing

wordpress 플러그인 페이지에서 현재 페이지 ID 가져오기

lastmoon 2023. 3. 28. 22:29
반응형

wordpress 플러그인 페이지에서 현재 페이지 ID 가져오기

전류를 흘려보내야 해page id루프 외부의 WordPress 플러그인 페이지에 있습니다.그리고 제가 작성한 코드는page id플러그인 페이지에 있습니다.여러 코드를 시도했지만 작동하지 않습니다.

$page_object = get_queried_object();
$page_id     = get_queried_object_id();


 // "Dirty" pre 3.1
 global $wp_query;

$page_object = $wp_query->get_queried_object();
$page_id     = $wp_query->get_queried_object_id();

하지만 나에게는 효과가 없다.

  global $post;
  echo "pageid: ".$post->ID;

이것도 안 돼요.

해보면

     global $wp_query;
     $post_obj = $wp_query->get_queried_object();
     $Page_ID = $post_obj->ID;
     echo $Page_ID;

에러 메세지가 표시됩니다.

치명적 오류: 876 회선의 H:\xampp\htdocs\wordpress\wp-content\plugins\wpk\wpk.php에 있는 비개체의 멤버 함수 get_querieed_object()를 호출합니다.

인쇄할 때:

global $wp_query;
print_r($wp_query);

결과는 다음과 같습니다.

WP_Query Object
(
    [query] => 
    [query_vars] => Array
        (
        )

    [tax_query] => 
    [meta_query] => 
    [date_query] => 
    [queried_object] => 
    [queried_object_id] => 
    [request] => 
    [posts] => 
    [post_count] => 0
    [current_post] => -1
    [in_the_loop] => 
    [post] => 
    [comments] => 
    [comment_count] => 0
    [current_comment] => -1
    [comment] => 
    [found_posts] => 0
    [max_num_pages] => 0
    [max_num_comment_pages] => 0
    [is_single] => 
    [is_preview] => 
    [is_page] => 
    [is_archive] => 
    [is_date] => 
    [is_year] => 
    [is_month] => 
    [is_day] => 
    [is_time] => 
    [is_author] => 
    [is_category] => 
    [is_tag] => 
    [is_tax] => 
    [is_search] => 
    [is_feed] => 
    [is_comment_feed] => 
    [is_trackback] => 
    [is_home] => 
    [is_404] => 
    [is_comments_popup] => 
    [is_paged] => 
    [is_admin] => 
    [is_attachment] => 
    [is_singular] => 
    [is_robots] => 
    [is_posts_page] => 
    [is_post_type_archive] => 
    [query_vars_hash] => 
    [query_vars_changed] => 1
    [thumbnails_cached] => 
    [stopwords:WP_Query:private] => 
)

이 문제를 어떻게 해결해야 할지, 전류를 어떻게 얻어야 할지 모르겠어.page id이 문제를 해결할 방법을 알고 있다면 여러분의 지원이 필요합니다.잘 부탁드립니다.

get_the_ID(); or $post->ID;워드프레스의 현재 페이지 또는 게시 ID를 반환합니다.

단, 투고는 워드프레스 포스트 테이블에 저장해야 합니다.그렇지 않으면 단순히 wordpress 데이터베이스의 항목이 아니기 때문에 ID를 얻을 수 없습니다.

정적 페이지이고 워드프레스 게시물의 엔트리가 아니라면get_the_ID()아무것도 돌려주지 않았어요

: get_the_ID()가 포스트 아카이브 페이지, 워드프레스 백엔드의 관리 페이지 등에서 작동하지 않았습니다.

따라서질문따라 백엔드 플러그인 설정 페이지 또는 임의의 아카이브 페이지인 페이지의 ID를 취득하려고 합니다.

갱신하다

워드프레스로 현재 게시 ID를 가져오는 방법

(1)global $post; $post->ID();

(2)global $wp_query; $post_id = $wp_query->get_queried_object_id();

(3)global $wp_query; $post_id = $wp_query->post->ID;

(4)get_the_ID();

[이 태그는 The Loop 내에 둘 것을 권장합니다]

이것 좀 봐

      function get_the_ID() {
               $post = get_post();
               return ! empty( $post ) ? $post->ID : false;
                }

(취득_the_)ID()는 현재 $post의 ID를 반환합니다.

(5)get_query_var('page_id')

[예쁜 퍼머링크를 쓰면 안 돼]
https://codex.wordpress.org/Function_Reference/get_query_var

얻을 수 있다ID다음 방법을 사용하여 루프 외부에 있는 현재 페이지의 게시물을 확인합니다.

global $wp_query;
$post_id = $wp_query->post->ID;

$post = get_post( $post_id );
$slug = $post->post_name;

페이지 ID를 취득하기 위해 아래 코드를 사용합니다.

get_the_ID();

이것이 적절한 해결책이라고 생각합니다.

$id = get_queried_object_id();

즉, 다음과 같습니다.

function get_queried_object_id() {
    global $wp_query;
    return $wp_query->get_queried_object_id();
}

선택한 답변은 Wordpress 루프에 넣었을 경우에만 작동합니다.밖에서는 쓸모없게 될 것이다.

이 기능은 어디에서나 사용할 수 있습니다.

global $wp_query;
$postID = $wp_query->post->ID;

위의 해결방법은 나에게 효과가 없었다.저는 이렇게 해서 저를 위해서 일해요.

add_action ( 'after_setup_theme', 'custom_function' );
function custom_function() {
    $current_url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    // get page id from url and check for ssl enabled 
    $pageId = url_to_postid(set_url_scheme($current_url));
    
} 

에서 모든 설정과 변수를 볼 수 있습니다.get_defined_vars()기능:

var_dump(get_defined_vars());

당신의 경우 '_GET'을 받고 'post' 안에 들어가야 합니다.코드는 다음과 같습니다.

$tmp = get_defined_vars();
var_dump($tmp['_GET']['post']);

아직 작동하지 않는 사용자에게는 일종의 add_action을 사용해야 합니다(사용할 항목을 선택할 수 있습니다).예를 들어, 플러그인 폴더, 함수 php 또는 그 외의 장소에 관계없이 현재 페이지 ID가 문제없이 반환됩니다.

add_action('template_redirect', 'showid');

function showid(){
    global $wp_query;
    $theid = intval($wp_query->queried_object->ID);
    echo $theid;
}

내가 이걸 시도하기 전까지는 아무 것도 효과가 없는 것 같았다.

<?php

function child_pages() {
  
    $page_id = get_query_var( 'paged' ) ? (int) get_query_var( 'paged' ) : 1;

    echo "<h2>" . $page_id . "</h2>";

}

add_action( 'template_redirect', 'child_pages' );
?>

언급URL : https://stackoverflow.com/questions/22351038/get-the-current-page-id-inside-wordpress-plugin-page

반응형