从帖子标题获取 WordPress 帖子 ID
Posted
技术标签:
【中文标题】从帖子标题获取 WordPress 帖子 ID【英文标题】:Get WordPress Post ID from Post title 【发布时间】:2010-12-04 22:24:46 【问题描述】:我正在开发的自定义 WordPress 主题存在问题。这有点令人费解,但本质上,我需要做的是通过它的帖子标题获取一个帖子 ID。在伪代码中,理想情况下是这样的:
title = "foo";
post_id = get_post_id_where_title_is(title);
提到的标题是一个静态引用,不是从 WordPress 中提取的,它已经存在于页面上。
提前致谢。
【问题讨论】:
【参考方案1】:如果其他人对此感到困惑,请找到解决方案。经过 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
【讨论】:
只需将该函数放在您的functions.php文件中即可。 请注意,如果您想获取页面的 id,您可能希望将 post_type 更改为 'page'。您也可以省略 SQL where 子句中的 post_type 来搜索所有修订版、页面和帖子等。(即所有类型。) 我怀疑这可能会返回草稿/垃圾版本,因为它没有标准status='published'
....【参考方案2】:
对于任何偶然发现此问题的人来说,只是一个简短的提示:get_page_by_title() 现在可以处理任何帖子类型。
WP 3.0 中添加了$post_type
参数。
【讨论】:
+1 总是比使用一些任意的 mysql 查询更好。 函数名有点混乱。【参考方案3】:获取帖子和页面 ID 的另一种方法是使用插件..
有一个插件,它所做的只是在所有页面、所有帖子、所有类别表中添加一个列,并有一个 ID 列标题...在下方,您将看到所有该列中列出的页面/帖子 ID..
我觉得应该很有用..
我经常使用这个插件,而且非常轻量级。
http://getyourblogready.com/?p=758
【讨论】:
发布代码对我们了解您的提议更有用...【参考方案4】:无需使用任何类型的 SQL 查询或插件,为此使用 Wordpress 标准函数
$page = get_page_by_title( 'Home' );
$page_id = $page->ID;
【讨论】:
【参考方案5】:您可以按照 [a link][http://codex.wordpress.org/Function_Reference/get_page_by_title]1 使用以下代码!
<?php
$page = get_page_by_title( 'About' );
wp_list_pages( 'exclude=' . $page->ID );
?>
【讨论】:
【参考方案6】:使用 wp 查询很容易从帖子标题中获取帖子 ID:
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;
【讨论】:
【参考方案7】: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");
【讨论】:
这如何回答这个问题?【参考方案8】:就像 Michal Mau 提到的:
使用
$my_post = get_page_by_title( 'My Title', OBJECT, 'post' );
echo $my_post->post_content;
( $page_title, $output, $post_type )
可以轻松接收帖子而不是页面。
【讨论】:
【参考方案9】:希望这将通过创建函数为您提供更多帮助,以便您无需重复代码
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);
【讨论】:
以上是关于从帖子标题获取 WordPress 帖子 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何从 wordpress 中的帖子页面 id 获取 acf 的画廊图片 url
WordPress - 无法从自定义帖子类型中的元框获取价值