如何添加一次新页面?

时间:2020-07-29 作者:Zed93

我正在开发一个插件,我会为数据库的每个值添加一个页面。

但对于每次刷新,都会添加一个同名的新页面。我怎样才能解决这个问题?

for ($i = 0; $i < count($namepages); $i++) {
       mic_create_new_page($name[$i],$namepages[$i]);    
}

function mic_create_new_page($name, $namepages) {
    global $user_ID;
    if (post_exists($namepages) == false) {
        $new_post = array(
            \'post_title\' => \'Services \' . $name,
            \'post_content\' => \'New post content\',
            \'post_status\' => \'publish\',
            \'post_date\' => date(\'Y-m-d H:i:s\'),
            \'post_author\' => $user_ID,
            \'post_type\' => \'page\',
            \'post_name\' => $namepages
        );
        $post_id = wp_insert_post($new_post);
    }
}
    
register_activation_hook(__FILE__, \'create_new_page\');

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

如果此代码位于函数中。php或直接在插件代码中,每次加载Wordpress时,顶部的for循环都会运行,最后的钩子引用一个不存在的函数。

因此,您可能希望将顶层代码放入函数中:

function zed93_create_new_page {
    for ($i = 0; $i < count($namepages); $i++) {
        mic_create_new_page($name[$i],$namepages[$i]);    
    }
}
并将挂钩改为:

register_activation_hook(__FILE__, \'zed93_create_new_page\');
请注意,函数名可以是任何名称,但使其对项目唯一有助于避免与其他插件/主题发生冲突。

相关推荐

如何更改GET_POSTS数组上的类别ID

我正在为我的AMP页面制作一个旋转木马,我想重用代码,所以我将其制作成了一个模板,但是,我在更改类别值数组上的ID时遇到了问题,我希望能够插入模板代码,只需选择类别,这样我就可以很好地重用它,而不是像疯子一样复制粘贴它。在过去的几天里,我尝试了一些方法,当代码与旋转木马位于同一页面时,大多数方法都会起作用,然而,当它作为模板时,它会破坏它。这是我用来构建它的代码,我想学习如何更改“category”=>1值。<div class=\"category-slider\"> <