我正在开发一个自定义WordPress主题的问题。这有点令人费解,但基本上,我需要做的是通过它的帖子标题获得Post Id。在伪代码中,它理想地类似于:
title = "foo";
post_id = get_post_id_where_title_is(title);
提到的标题是一个静态引用,不是从WordPress引入的,它已经存在于页面上。
提前致谢。
答案 0 :(得分:86)
对于偶然发现这一点的人来说,只是一个简短的说明:
get_page_by_title()现在可以处理任何帖子类型
WP 3.0中添加了$post_type
参数。
答案 1 :(得分:19)
如果有其他人在努力解决这个问题,那么找到解决方案。测试/谷歌搜索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
答案 2 :(得分:8)
像Michal Mau所说:
使用
$my_post = get_page_by_title( 'My Title', OBJECT, 'post' );
echo $my_post->post_content;
( $page_title, $output, $post_type )
可轻松接收帖子而不是网页。
答案 3 :(得分:2)
这可以通过创建函数来帮助您,以便您不必重复代码
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);
答案 4 :(得分:1)
您可以根据[链接] [http://codex.wordpress.org/Function_Reference/get_page_by_title] 1使用以下代码!
<?php
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>
答案 5 :(得分:0)
获取帖子和页面ID的另一种方法是使用插件..
有一个插件,它只是简单地做,只是在你的所有页面,所有帖子,所有类别表中添加一列,并且列标题为ID ......在下面,你会看到所有的该列中列出的页面/帖子ID ..
我认为这应该非常有用..
我经常使用这个插件,它非常轻巧。
答案 6 :(得分:0)
无需使用任何类型的SQL查询或插件,请使用Wordpress标准函数
$page = get_page_by_title( 'Home' );
$page_id = $page->ID;
答案 7 :(得分:0)
使用wp_query:
很容易从帖子标题中获取帖子IDglobal $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;
答案 8 :(得分:0)
1)彼此区别 post_title 和 post_name 。 post_name也许就是slu .. post_title是帖子的标题。
2)
$titlee = "yourtitle";
echo $id = $wpdb->get_var("SELECT ID FROM $GLOBALS['wpdb']->posts WHERE post_name = $titlee");