📜  wordpress 获取页面 slug - PHP (1)

📅  最后修改于: 2023-12-03 15:21:14.223000             🧑  作者: Mango

WordPress 获取页面 slug - PHP

在开发 WordPress 主题和插件时,经常需要获取页面的 slug。页面 slug 是页面的唯一标识符,用于构建页面的 URL。本文将介绍如何在 PHP 中获取 WordPress 页面的 slug。

直接使用 WordPress 函数

WordPress 提供了一个 get_post() 函数,用于获取帖子或页面对象。可以使用该函数获取页面对象,然后从页面对象中获取 slug。

// 获取页面对象
$page = get_post();

// 获取页面 slug
$slug = $page->post_name;

该方法非常简单,但可能不适用于所有情况。因为 get_post() 函数返回当前页面或帖子对象,如果不在页面或帖子中调用此函数,则无法获取正确的页面对象。

使用 WordPress 查询

WordPress 查询提供了一种更灵活的获取页面 slug 的方法。可以使用 WP_Query() 函数来构建一个查询,然后从查询结果中获取页面 slug。

// 构建页面查询
$args = array(
    'post_type' => 'page',
    'pagename' => 'about-us'
);
$page_query = new WP_Query($args);

// 获取第一个页面对象
if ($page_query->have_posts()) {
    $page_query->the_post();
    $page = get_post();
}

// 获取页面 slug
$slug = $page->post_name;

// 重置查询
wp_reset_postdata();

在上面的例子中,我们使用 WP_Query() 函数构建一个查询,查询页面类型为 'page',页面名称为 'about-us'。然后,我们使用 $page_query->the_post() 函数将页面对象设置为当前对象,并使用 get_post() 函数从页面对象中获取 slug。最后,我们使用 wp_reset_postdata() 函数重置查询,以确保所做的更改不会影响其他查询。

结论

在 PHP 中获取 WordPress 页面的 slug,可以使用 WordPress 函数或 WordPress 查询。如果当前在页面或帖子中,则可以使用 get_post() 函数直接获取页面 slug。否则,可以使用 WP_Query() 函数构建查询,并从查询结果中获取页面 slug。