У меня проблема с пользовательской темой WordPress, которую я разрабатываю. Это немного запутанно, но в сущности, мне нужно сделать, чтобы получить идентификатор сообщения по его заголовку. В псевдокоде в идеале было бы что-то вроде:
title = "foo"; post_id = get_post_id_where_title_is(title);
В названии упоминается статическая ссылка, которую не извлекает из WordPress, она уже присутствует на странице.
Заранее спасибо.
Просто короткая заметка для всех, кто натыкается на это:
get_page_by_title () теперь может обрабатывать любой тип сообщения.
Параметр $post_type
был добавлен в WP 3.0.
Нашел решение, если кто-то еще борется с этим. Только отправил вопрос из отчаяния после 4-часового тестирования / Googling!
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
Как сказал Михал Мау:
использование
$my_post = get_page_by_title( 'My Title', OBJECT, 'post' ); echo $my_post->post_content;
Это ( $page_title, $output, $post_type )
чтобы легко получать сообщение вместо страницы.
Пусть это поможет вам больше, создав функцию, чтобы вам не пришлось повторять код
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);
вы можете использовать следующий код в соответствии с [ссылкой] [http://codex.wordpress.org/Function_Reference/get_page_by_title] 1 )!
<?php $page = get_page_by_title( 'About' ); wp_list_pages( 'exclude=' . $page->ID ); ?>
Другой способ получить сообщение и идентификатор страницы – использовать плагин.
есть плагин, что то, что он просто делает, просто добавляет столбец на все ваши страницы, все сообщения, таблицы всех категорий и имеет заголовок столбца ID … и справа внизу вы увидите всю страницу / сообщение идентификатор, указанный в этой колонке.
Я думаю, что это должно быть очень полезно.
Я использую этот плагин очень часто, и он очень легкий.
Нет необходимости использовать какие-либо SQL-запросы или плагины, используйте стандартные функции WordPress для этого
$page = get_page_by_title( 'Home' ); $page_id = $page->ID;
легко получить идентификатор сообщения из заголовка сообщения, используя запрос 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;
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");