我的脚本正在生成副本post 即使在我明确声明post\\u类型应该是page. 它还忽略了$post_title
, 如果标题已经存在,我不想创建重复的帖子。有人知道为什么要创建帖子而不是页面吗?
function av_generate_page($post_id) {
$post_info = get_post($post_id);
$post_slug = $post_info->post_name;
$post_title = $post_info->post_title;
$page_exists = get_page_by_title($post_title);
if($page_exists){ exit(); }
$detail_level = get_post_meta($post_id, \'detail_level\', true);
$formats = wp_get_post_terms($post_id, \'formats\', array(\'fields\'=>\'slugs\'));
$page = array(
\'post_type\' => \'page\',
\'post_title\' => $post_title,
\'post_content\' => \'[[\'.$post_slug.\']]\',
\'post_status\' => \'publish\',
\'post_parent\' => 8800
);
if( !$page_exists ) {
if (in_array(\'brief-segment\',$formats)){
// Do not create a page for brief segments
}else{
$new_page_id = wp_insert_post($page, false);
update_post_meta($new_page_id,\'suf_hide_page_title\',\'on\');
update_post_meta($new_page_id,\'_wp_page_template\',\'no-sidebars-no-comments.php\');
if(in_array(\'internal-only\',$formats)){
add_post_meta($new_page_id,\'InternalOnly\',\'yes\',true);
}
}
}else{
// Do not create a page
}
} add_action(\'publish_post\', av_generate_page, 12);
EDIT 我将如何传递当前帖子id作为生成页面的id?
作为将帖子嵌入页面(前提是该页面尚未创建)的前提,我正在创建hierarchical treeview of pages. 因为帖子是平面的,所以每次创建帖子时都需要创建一个页面,并将其移动到层次结构中的适当位置。为什么我不简单地创建一个页面呢?因为我需要根据应用到的多个类别为每个帖子创建多个页面。是的,他们在帖子中标记了类别,但我仍然需要提供我无法处理帖子的页面列表。因此,我正在创建一个可以存在于层次结构中的页面,并引用一篇文章,因此我也可以在其他页面中引用该文章。