Как получить идентификатор поста из постоянной ссылки (довольно URL)?

30

Как получить сообщение id из permalink (довольно URL)?

  • 1
    @Yuliy: это, наверное, лучший ответ здесь; Я предлагаю вам сделать это реальным ответом, а не просто комментарием. :)
  • 0
    @Yuliy я не нашел, ты не мог бы помочь?
Показать ещё 3 комментария
Теги:
permalinks

6 ответов

48
Лучший ответ

Вы должны быть в порядке с url_to_postid() [см. документацию], которая находится в файле rewrite.php. Я использовал его в моем плагине в прошлом году, работает как прелесть.

  • 0
    Да, спасибо, приятель!
  • 6
    Что ж. По крайней мере, сейчас это задокументировано. codex.wordpress.org/Function_Reference/url_to_postid
Показать ещё 2 комментария
9

Это работает для регулярных типов сообщений и пользовательских типов сообщений. url_to_postid() работает только для регулярных сообщений.

  • 1
    пожалуйста, добавьте больше, чем ссылку под словом «это», чтобы описать, что находится за ссылкой.
7

У меня есть специальная (& documented) функция для этого:

get_page_by_path( $page_path, $output, $post_type );

Получает страницу с указанием ее пути.

Где $page_path есть

[...] эквивалент запроса "pagename", как в: "index.php? pagename = parent-page/sub-page".

См. Справочник по функциям/получить страницу по пути

Пример:

// 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');
  • 0
    Но не работает на сообщениях ...
  • 1
    Вам просто нужно определить тип записи (см. Аргумент $post_type : codex.wordpress.org/Post_Types )
Показать ещё 3 комментария
1

url_to_postid() от 3.7.0: теперь эта функция поддерживает пользовательские типы сообщений (см. Trac tickets #19744, #25659).

0

используйте

  $postid = url_to_postid( $url );

чтобы извлечь идентификатор вложения.

Требуется, чтобы указанный URL был в формате example.com/?attachment_id=N и не будет работать с полным URL-адресом, чтобы получить идентификатор из полного URL-адреса.

0

вы также можете попробовать это:

$post = get_page_by_path('cat',OBJECT,'animal'); 

cat - это тот, который вы ищете = постоянная ссылка; животное - это тип персонализированного сообщения,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню