在插件激活时创建页面

时间:2013-09-16 作者:Jake Snake

我已经这样做了,每次我的插件被激活时,它都应该创建一个页面。尽管我希望它只在以前不存在的情况下创建页面。但它所做的是用kns-products-1创建另一个页面,而不是完全不这样做。

迄今为止我的代码:

function kns_install() {
    global $wp_version;

    if( version_compare( $wp_version, \'3.5\', \'<\' ) ) {
        wp_die( \'Detta tilläget kräver att du har WordPress version 3.5 eller högre.\' );
    } else {
        if(!is_page(\'kns-products\')) {
            $product_page = array(
            \'post_type\' => \'page\',
            \'post_name\' => \'kns-products\',
            \'post_title\' => \'Produkter\',
            \'post_status\' => \'publish\',
            );

            wp_insert_post($product_page);
        }
    }   
}
我还以为呢!is\\U页面条件可以解决这个问题,但似乎有一个内置代码,只需在slug名称后添加数字。

有没有办法解决这个问题,或者有没有人知道更好的方法?

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

由于要检查特定页面,因此可以使用以下功能之一,例如:

  • get_post: 获取帖子ID并返回该帖子的数据库记录,该记录也可以是页面
  • get_page_by_title: 检索给定标题的帖子。如果有多篇文章使用相同的标题,则返回ID最小的文章
或者,您可以编写自己的小函数,通过其slug获取页面:

function get_page_by_slug($slug) {
    if ($pages = get_pages())
        foreach ($pages as $page)
            if ($slug === $page->post_name) return $page;
    return false;
} // function get_page_by_slug
您可以这样使用它:

if (! get_page_by_slug(\'kns-products\')) {
    ...
}

结束

相关推荐

Hide Pages WooCommerce

我希望满足以下条件:1) 已记录用户。选择Page Shop并显示所有内容。2) 如果未记录用户。选择Shop page,它们将重定向到另一个页面,例如注册页面。我希望这是可能的。我尝试了很多插件,但都失败了。目前,唯一与WooCommerce合作的是s2Member,但对我来说,这太过分了。提前感谢您的帮助。