WordPress直接通过数据库来检索title来获取post id(附:post type支持代码)
下面是一个可以在WordPress中直接通过数据库来检索文章标题(title)以获取文章ID(post ID)的PHP函数:
function get_post_id_by_title( $title ) {
global $wpdb;
$post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = 'post' AND post_status = 'publish'", $title ) );
return $post_id;
}
这个函数使用了WordPress的全局变量 $wpdb
,它允许我们访问数据库并执行SQL查询。函数的参数 $title
是要搜索的文章标题。
查询语句使用了 $wpdb->prepare()
函数来安全地处理查询中的变量。它会自动为查询中的字符串和数字添加引号和转义符,以避免 SQL 注入攻击。
查询语句在 $wpdb->posts
数据库表中搜索 post_title 字段等于 $title
,并且 post_type 是 'post'(文章类型为文章)并且 post_status 是 'publish'(文章状态为已发布)的文章。如果找到匹配的文章,则返回文章的 ID。
你可以将这个函数添加到你的 WordPress 主题或插件中,并在需要时调用它来获取文章 ID。例如:
$post_id = get_post_id_by_title( 'Hello World' );
这将返回标题为 'Hello World' 的文章的 ID。
post type支持代码
如果你需要检索名为“liushui”的自定义 custom post type,而不是默认的 post 类型,可以稍微修改我们之前的函数来适应这种情况。只需将查询语句中的 post_type 字段替换为你的自定义 post type 名称即可。
下面是修改后的函数:
function get_custom_post_id_by_title( $title ) {
global $wpdb;
$post_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type = 'liushui' AND post_status = 'publish'", $title ) );
return $post_id;
}
这个函数与之前的函数非常相似,唯一的区别是查询语句中的 post_type 字段是 'liushui',这是你的自定义 custom post type 名称。你可以在需要的时候调用这个函数来获取你自定义 post type 的文章 ID。
例如:
$post_id = get_custom_post_id_by_title( 'Hello World' );
这将返回名为“Hello World”的自定义 custom post type 文章的 ID。请注意,这个函数仅适用于已发布的文章。如果文章处于草稿、待审核或已归档状态,它将无法检索到文章。

-
盘点2023年依然好用的4款WordPress轻社区主题 2023-05-29 08:00:54
-
盘点2023年最好用的三款wordpress知识库主题 2023-05-29 08:00:26
-
个人网站选择WordPress还是Typecho? 2023-05-28 23:33:13
-
wordpress建外贸B2C独立站的五大优势 2023-05-28 23:05:49
-
盘点2023年依然好用的3款wordpress文档主题 2023-05-28 23:02:19
-
盘点2023年依然好用的3款wordpress外贸网站主题 2023-05-28 22:59:41
-
盘点2023年依然好用的3款wordpress电商主题 2023-05-28 22:56:05
-
wordpress后台地址是多少(附:后台地址修改教程) 2023-05-28 22:54:15
-
盘点2023年依然好用的3款wordpress笔记主题 2023-05-28 22:51:13
-
开源wordpress主题:kratos 介绍 2023-05-28 22:47:46