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。请注意,这个函数仅适用于已发布的文章。如果文章处于草稿、待审核或已归档状态,它将无法检索到文章。
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45