📅  最后修改于: 2023-12-03 15:28:23.724000             🧑  作者: Mango
在 WordPress 中,每个页面、帖子、类别、标签等都有一个唯一的标识符,称为 ID。通过这个 ID,我们可以很容易地在代码中获取特定的页面或帖子。
但是,如何从 WordPress 中的 URL 获取这个 ID 呢?下面提供一些方法。
WordPress 提供了许多内置函数,可以帮助我们获取 URL 中的信息,比如 get_permalink()
。函数 get_permalink()
返回当前页面或帖子的永久链接,我们可以从中获取 ID。
$permalink = get_permalink(); // 获取当前页面的永久链接
$id = url_to_postid($permalink); // 获取永久链接中的 ID
echo $id; // 输出 ID
url_to_postid()
函数可以将永久链接转换为帖子或页面的 ID。
我们也可以使用正则表达式从 URL 中提取 ID。下面是一个示例:
$url = "https://example.com/post/1234/";
$pattern = '/(\d+)/'; // 匹配数字
preg_match($pattern, $url, $matches); // 在 URL 中查找匹配的部分
$id = $matches[0]; // 数组中的第一个元素是匹配的 ID
echo $id; // 输出 ID
这个示例中使用了 PHP 自带的 preg_match()
函数,使用正则表达式查找 URL 中的数字并返回 ID。
最后,我们还可以使用 WordPress API 中提供的功能,比如 WP_Query
。WP_Query
可以根据 URL 中的参数返回帖子或页面的 ID。
$args = array(
'name' => basename(get_permalink()), // 获取永久链接中的最后一段并作为帖子/页面名称
'post_type' => array('post', 'page'),
'post_status' => 'publish',
'posts_per_page' => 1
);
$query = new WP_Query($args);
if ($query->have_posts()) {
$id = $query->post->ID; // 获取帖子或页面的 ID
echo $id; // 输出 ID
}
这个示例中,我们构造了一个 WP_Query
的查询参数,使用 basename()
函数获取永久链接中的最后一段,并将其作为帖子或页面的名称传递给 WP_Query
。如果查询到结果,我们就可以从 $query->post->ID
中获取 ID。
以上是三种从 URL 中获取 WordPress ID 的方法。根据不同的使用场景,我们可以灵活选择合适的方法。