Comment obtenir post-id de permalink (jolie URL)
Cela devrait aller avec url_to_postid()
[ voir documentation ] qui se trouve dans rewrite.php. Je l'ai utilisé dans un de mes plugins l'année dernière, fonctionne à merveille.
Ceci fonctionne pour les types d'article standard ET les types d'article personnalisés. url_to_postid () ne fonctionne que pour les messages réguliers.
J'ai une fonction dédiée (et documentée) pour cela:
get_page_by_path( $page_path, $output, $post_type );
Récupère une page en fonction de son chemin.
Où $page_path
est
[...] l'équivalent de la requête 'pagename', comme dans: 'index.php? pagename = page parent/sous-page'.
Voir Référence de fonction/get page par chemin
Exemple:
// Assume 'my_permalink' is a post.
// But all types are supported: post, page, attachment, custom post type, etc.
// See http://codex.wordpress.org/Post_Types
get_page_by_path('my_permalink', OBJECT, 'post');
url_to_postid()
à partir de 3.7.0
: cette fonction prend désormais en charge les types de publication personnalisés (voir Tickets de Trac #19744
, #25659
).
vous pouvez essayer celui-ci aussi:
$post = get_page_by_path('cat',OBJECT,'animal');
le chat est celui que vous recherchez = le permalien; animal est le type de poste personnalisé,
veuillez utiliser
$postid = url_to_postid( $url );
pour récupérer l'ID d'une pièce jointe.
L'URL fournie doit obligatoirement être au format example.com/?attachment_id=N
et ne fonctionnera pas avec l'URL complète pour obtenir l'ID de l'URL complète.