Je dois obtenir le page id
actuel dans la page du plugin WordPress en dehors de la boucle. Et le code que j'ai écrit pour obtenir le page id
actuel se trouve dans ma page de plugin. J'ai essayé beaucoup de codes, mais ça ne marche pas
$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();
Mais ça ne marche pas pour moi.
global $post;
echo "pageid: ".$post->ID;
Cela ne fonctionne pas non plus.
Quand j'essaye
global $wp_query;
$post_obj = $wp_query->get_queried_object();
$Page_ID = $post_obj->ID;
echo $Page_ID;
Puis un message d'erreur apparaît
Erreur fatale: appel de la fonction membre get_queried_object () sur un non-objet dans H:\xampp\htdocs\wordpress\wp-content\plugins\wpk\wpk.php à la ligne 876
Quand j'imprime:
global $wp_query;
print_r($wp_query);
alors le résultat est:
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] =>
)
Je ne sais pas comment résoudre ceci, comment obtenir le page id
actuel. Si vous savez comment résoudre ce problème, alors j'ai besoin de votre soutien. Merci d'avance.
get_the_ID(); or $post->ID;
renvoie la page actuelle ou l'identifiant de publication dans Wordpress.
Mais vous devez vous assurer que votre message est enregistré dans wordpress post table. Sinon, vous ne pouvez pas obtenir l'identifiant, simplement à cause de cela pas une entrée dans la base de données wordpress.
Si c'est une page statique et que ce n'est pas une entrée dans wordpress post, get_the_ID()
n'a rien renvoyé.
Par exemple: get_the_ID () n'a pas fonctionné dans les pages post-archive, les pages d'administration dans le backend wordpress, etc.
So comme par cette question vous essayez d'obtenir l'id de la page qui est une page de paramétrage de plug-in backend ou une page d'archive.
METTRE À JOUR
Méthode pour obtenir l'identifiant du message courant dans 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();
[Il est recommandé que cette balise soit dans la boucle. ]
regarde ça
function get_the_ID() {
$post = get_post();
return ! empty( $post ) ? $post->ID : false;
}
ie get_the_ID () retourne l'id de $ post en cours.
(5) get_query_var('page_id')
[ça ne marchera pas si nous utilisons assez permalink]
https://codex.wordpress.org/Function_Reference/get_query_var
Vous pouvez obtenir ID
du message dans la page actuelle en dehors de la boucle en utilisant la technique ci-dessous:
global $wp_query;
$post_id = $wp_query->post->ID;
$post = get_post( $post_id );
$slug = $post->post_name;
essayez d'utiliser le code ci-dessous pour obtenir l'identifiant de la page
get_the_ID();
La réponse choisie fonctionne uniquement si vous la mettez dans la boucle Wordpress . Dehors, il deviendra inutile.
Cela fonctionne partout:
global $wp_query;
$postID = $wp_query->post->ID;
Je suppose que c'est la bonne solution:
$id = get_queried_object_id();
ce qui équivaut à:
function get_queried_object_id() {
global $wp_query;
return $wp_query->get_queried_object_id();
}
Vous obtenez tous les paramètres et les variables dans la fonction get_defined_vars()
:
var_dump(get_defined_vars());
Dans votre cas, vous devez avoir '_GET' et à l'intérieur 'post' ... Le code devrait ressembler à ceci:
$tmp = get_defined_vars();
var_dump($tmp['_GET']['post']);