J'ai une URL (telle que l'URL /sample-page/
), j'ai besoin de l'ID d'objet correspondant. Comment?
Essayez cette fonction:
url_to_postid( $url );
Le codex WordPress est votre ami. Une recherche rapide sur Google aurait pu fournir la réponse.
Les autres réponses sont valables, mais juste pour ajouter une autre méthode (généralement inconnue, mais très utile) fournie par une fonction appelée: get_page_by_path();
$page =get_page_by_path('parent-page/sub-page');
Il convient de noter que le paramètre path peut même prendre un paramètre SLUG. Exemple :
$page = get_page_by_path('your-slug-of-page-to-exclude');
wp_list_pages('exclude='.$page->ID.'&title_li=');
alors vous pourriez utiliser $page->ID
Utilisez get_queried_object_id()
un mappeur pour WP_Query::get_queried_object_id()
.
Contrairement à url_to_postid()
, vous n'avez pas besoin de connaître l'URL et cela fonctionne aussi sur les taxonomies et les types de publication personnalisés (si je me souviens bien de cela).
Pour un exemple d'utilisation, voir mon réponse à Obtenir l'ID du terme actuel .
J'ai eu le même problème, uniquement avec les types de publication personnalisés. Malheureusement, url_to_postid( $url );
ne fonctionne pas avec les types personnalisés, alors j’ai fini par utiliser cette fonction bwp_url_to_postid ($ url) . Cette fonction permet d’étendre url_to_postid( $url );
pour utiliser des types de publication personnalisés.
Si vous avez le lien permanent de l'URL, alors:
<?php $postLink = get_permalink($post_object->ID); ?>
<?php $postId = bwp_url_to_postid($link); ?>
<?php echo $postId ?>