Получить идентификатор записи WordPress из заголовка записи


У меня проблема с пользовательской темой WordPress, которую я разрабатываю. Это немного запутанно, но, по сути, все, что мне нужно сделать, это получить идентификатор поста по его названию. В псевдокоде в идеале это было бы что-то вроде:

title = "foo";
post_id = get_post_id_where_title_is(title);

Упомянутый заголовок является статической ссылкой, которая не извлекается из WordPress, она уже присутствует на странице.

Заранее благодарю.

Author: Aaron, 2009-10-08

9 answers

Просто краткое примечание для всех, кто наткнется на это:
get_page_by_title() теперь может обрабатывать сообщения любого типа.
Параметр $post_type был добавлен в WP 3.0.

 85
Author: Michal Mau, 2011-08-01 09:26:31

Нашел решение, если кто-то еще борется с этим. Только опубликовал вопрос от отчаяния после 4 часов тестирования/гугления!

function get_post_by_title($page_title, $output = OBJECT) {
    global $wpdb;
        $post = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type='post'", $page_title ));
        if ( $post )
            return get_post($post, $output);

    return null;
}

Найдено по адресу: http://sudarmuthu.com/blog/2009/09/18/retrieving-posts-and-pages-based-on-title-in-wordpress.html

 19
Author: Aaron, 2009-10-08 10:01:40

Как упоминал Михал Мау:

Использовать

$my_post = get_page_by_title( 'My Title', OBJECT, 'post' );
echo $my_post->post_content;

Это ( $page_title, $output, $post_type ) чтобы легко получать сообщение вместо страницы.

 7
Author: BrainBUG, 2014-03-27 13:18:51

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

function get_page_id_by_title($title)
{
$page = get_page_by_title($title);
return $page->ID;
}

$title = "your title";
get_page_id_by_title($title);
 2
Author: Kundan SIngh, 2014-09-15 07:56:50

Вы можете использовать следующий код в соответствии с [ссылкой][http://codex.wordpress.org/Function_Reference/get_page_by_title]1 )!

<?php 
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>
 1
Author: Ramkumar, 2012-11-06 05:35:39

Еще один способ получить идентификатор записи и страницы - использовать плагин..

Есть плагин, который просто добавляет столбец на все ваши страницы, все сообщения, таблицы всех категорий и имеет заголовок столбца с идентификатором... и прямо ниже вы увидите все страницы/идентификаторы сообщений, перечисленные в этом столбце..

Я думаю, что это должно быть очень полезно..

Я очень часто использую этот плагин, и он очень легкий.

Http://getyourblogready.com/?p=758

 0
Author: user1470261, 2012-06-20 19:21:50

Нет необходимости использовать какие-либо типы SQL-запросов или плагинов, используйте стандартные функции Wordpress для этого

$page = get_page_by_title( 'Home' );
$page_id = $page->ID;
 0
Author: Erik Larsson, 2012-10-12 08:24:45

Легко получить идентификатор записи из заголовка записи с помощью запроса wp:

global $wpdb;

$rw = $wpdb->get_row( $wpdb->prepare("select * from "your post table name" where post_title='your variable name or your post title'"));

echo $rw->ID;
 0
Author: Omdev, 2013-07-06 12:57:25

1) отличаются заголовком сообщения и именем сообщения друг от друга. возможно, post_name - это слизняк. post_title - это заголовок сообщения.

2)

$titlee = "yourtitle";
echo $id = $wpdb->get_var("SELECT ID FROM $GLOBALS['wpdb']->posts WHERE post_name = $titlee");
 0
Author: T.Todua, 2016-05-16 08:36:15