Получить идентификатор сообщения WordPress из заголовка сообщения - PullRequest
45 голосов
/ 08 октября 2009

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

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

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

Заранее спасибо.

Ответы [ 9 ]

86 голосов
/ 01 августа 2011

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

19 голосов
/ 08 октября 2009

Нашел решение, если кто-то еще борется с этим. Вопрос только от отчаяния выложил только после 4 часов тестирования / Google!

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

8 голосов
/ 27 декабря 2013

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

Используйте

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

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

2 голосов
/ 15 сентября 2014

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

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);
1 голос
/ 06 ноября 2012

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

<?php 
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>
0 голосов
/ 11 октября 2013

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

2)

$titlee = "yourtitle";
echo $id = $wpdb->get_var("SELECT ID FROM $GLOBALS['wpdb']->posts WHERE post_name = $titlee");
0 голосов
/ 06 июля 2013

легко получить идентификатор сообщения из заголовка сообщения, используя 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 голосов
/ 12 октября 2012

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

$page = get_page_by_title( 'Home' );
$page_id = $page->ID;
0 голосов
/ 20 июня 2012

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...