Как получить сообщение id из permalink (pretty url)?Как получить сообщение id из permalink (довольно url)?
ответ
Все должно быть хорошо с url_to_postid()
[see documentation], который находится в rewrite.php. Я использовал его в моем плагине в прошлом году, работает как шарм.
Да, спасибо, помощник! –
Ну. Это документировано сейчас, по крайней мере. http://codex.wordpress.org/Function_Reference/url_to_postid – vmassuchetto
Следует также отметить, что в документации упоминается: «Обратите внимание, что это не возвращает идентификатор сообщения для пользовательских типов сообщений». – Ash
У меня есть специальная функция (& документированных) для этого:
get_page_by_path($page_path, $output, $post_type);
Извлекает страницы с учетом его путем.
Где $page_path
является
[...] эквивалент запроса 'Pagename', как: 'index.php? ИмяСтраницы = родитель-страницу/суб-страницу'.
См Function Reference/get page by path
Пример:
// 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');
Но не работает на сообщениях ... – Jake
Вам просто нужно определить тип сообщения (см. Аргумент '$ post_type': http://codex.wordpress.org/Post_Types) – mems
Вы должны отредактировать это. Ваш ответ теперь лучше, что они добавили поддержку custom_post_types и сообщений или, по крайней мере, задокументировали это ... Это решение, которое я использую сам. Благодарю. – Jake
This работает для обычных видов почтовых и типов пользовательских почтовых. url_to_postid() работает только для обычных сообщений.
, пожалуйста, добавьте ссылку ниже под словом «это», чтобы описать, что находится за ссылкой. –
url_to_postid()
от 3.7.0
: Эта функция теперь поддерживает пользовательские типы сообщений (см. Билеты Trac #19744
, #25659
).
вы можете попробовать это также:
$post = get_page_by_path('cat',OBJECT,'animal');
кошка является тот, который вы ищете = постоянную ссылку; животное является таможенный пост типа,
используйте
$postid = url_to_postid($url);
в retrive идентификатор вложения.
Требуется, чтобы указанный url был в формате example.com/?attachment_id=N
и не будет работать с полным URL-адресом, чтобы получить идентификатор из полного URL-адреса.
@ Юлий: Это, наверное, лучший ответ здесь; Я предлагаю вам сделать его реальным ответом, а не просто комментарием. :) – bcat
@Yuliy Я не нашел, не могли бы вы помочь? –
@Jeaffrey Gilbert - Можете ли вы объяснить больше того, что вы пытаетесь на самом деле выполнить? Существует несколько «правильных» ответов, но каждый из них отличается, и каждый будет зависеть от вашей ситуации и того, что вы пытаетесь выполнить. Кстати, вы можете опубликовать этот вопрос на сайте сестры SO WordPress Answers: http://wordpress.stackexchange.com. – MikeSchinkel