Как преобразовать название записи в ID записи WordPress

19 июл. 2012 г., 02:32:57
Просмотры: 16K
Голосов: 0

Я пытаюсь создать функцию для файла functions.php, которая позволит преобразовывать название записи в её ID. Поискав в интернете, я нашел эту ссылку http://www.devdevote.com/cms/wordpress-hacks/get_id_by_post_name, где приведен следующий пример:

function get_id_by_post_name($post_name)
{
    global $wpdb;
    $id = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_name = '".$post_name."'");
    return $id;
}

<?php echo get_id_by_post_name('my-post-name'); ?>

После замены my-post-name в примере я не получаю никаких результатов. Может кто-то подсказать, в чем проблема?

Я также рассматривал функцию get_by_postname, возможно, это более правильный способ решения задачи.

0
Все ответы на вопрос 2
1

Используйте get_page_by_title(). Эта функция работает с любым типом записи.

$post = get_page_by_title( $post_name, OBJECT, 'post' );
echo $post->ID;
19 июл. 2012 г. 02:41:38
Комментарии

Я сейчас пытаюсь продолжить работу с этой функцией и изменить её так, чтобы она использовала название записи вместо ID. Я создал новый вопрос на http://wordpress.stackexchange.com/questions/59050/combine-two-functions-highlight-menu-item-by-post-name-instead-of-id - Есть шанс, что вы сможете взглянуть?

fightstarr20 fightstarr20
19 июл. 2012 г. 19:21:29
0

Мне кажется, что функция get_page_by_path() — это та, которую вы бы использовали для поиска по полю post_name (или по иерархии значений, разделённых слешами), тогда как get_page_by_title() работает только с post_title.

18 нояб. 2013 г. 19:57:13