it-swarm.com.de

rufen Sie die aktuelle Seitenkennung in der WordPress-Plugin-Seite ab

Ich muss die aktuelle page id in der WordPress-Plugin-Seite außerhalb der Schleife abrufen. Der Code, den ich geschrieben habe, um aktuelle page id zu erhalten, befindet sich auf meiner Plugin-Seite. Ich habe viele Codes ausprobiert, funktioniert aber nicht 

$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();

Aber bei mir funktioniert das nicht. 

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

Das funktioniert auch nicht.

Wenn ich es versuche

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

Dann erscheint eine Fehlermeldung 

Schwerwiegender Fehler: Aufruf einer Memberfunktion get_queried_object () auf einem Nichtobjekt in H:\xampp\htdocs\wordpress\wp-content\plugins\wpk\wpk.php in Zeile 876

Wenn ich drucke:

global $wp_query;
print_r($wp_query);

dann ist das Ergebnis:

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] => 
)

Ich weiß nicht, wie ich das lösen kann, wie ich den aktuellen page id bekomme. Wenn Sie wissen, wie Sie dieses Problem lösen können, brauche ich Ihre Unterstützung. Danke im Voraus.

22
user3400696

get_the_ID(); or $post->ID; gibt die aktuelle Seite oder Beitrags-ID in Wordpress zurück.

Sie müssen jedoch sicherstellen, dass Ihr Beitrag in der wordpress post table) gespeichert ist. Andernfalls können Sie die ID nicht erhalten, einfach deswegen ist kein Eintrag in wordpress database.

Wenn es sich um eine statische Seite handelt und es sich nicht um einen Eintrag in wordpress post handelt, hat get_the_ID() nichts zurückgegeben.

Zum Beispiel : get_the_ID () funktionierte nicht auf Seiten nach dem Archiv, Verwaltungsseiten im wordpress Backend usw.

Also gemäß dieser Frage Sie versuchen, die ID der Seite zu ermitteln, die eine Back-End-Plugin-Einstellungsseite oder eine Archivseite ist.

[~ # ~] Update [~ # ~]

Methode zum Abrufen der aktuellen Beitrags-ID in WordPress

(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();

[Es wird empfohlen, dass sich dieses Tag innerhalb der Schleife befindet. ]

sieh dir das an

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

dh get_the_ID () gibt die ID des aktuellen $ post zurück.

(5) get_query_var('page_id')

[Es wird nicht funktionieren, wenn wir einen hübschen Permalink verwenden]
https://codex.wordpress.org/Function_Reference/get_query_var

35
Sagin

Sie können ID des Posts auf der aktuellen Seite außerhalb der Schleife mit der folgenden Technik abrufen:

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

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

verwenden Sie den folgenden Code, um die Seiten-ID zu erhalten

get_the_ID();
4
Ram Sharma

Die gewählte Antwort funktioniert nur, wenn Sie sie in die Wordpress-Schleife einfügen. Draußen wird es unbrauchbar machen.

Das funktioniert überall:

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

Ich denke, das ist die richtige Lösung:

$id = get_queried_object_id();

was entspricht:

function get_queried_object_id() {
    global $wp_query;
    return $wp_query->get_queried_object_id();
}
1
D.A.H

Sie sehen alle Einstellungen und Variablen in der Funktion get_defined_vars():

var_dump(get_defined_vars());

In Ihrem Fall müssen Sie "_GET" und "post" eingeben ...

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