我已经这样做了,每次我的插件被激活时,它都应该创建一个页面。尽管我希望它只在以前不存在的情况下创建页面。但它所做的是用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名称后添加数字。
有没有办法解决这个问题,或者有没有人知道更好的方法?
最合适的回答,由SO网友:tfrommen 整理而成
由于要检查特定页面,因此可以使用以下功能之一,例如:
或者,您可以编写自己的小函数,通过其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\')) {
...
}