我找到了问题和解决方案。我使用“is\\u wp\\u error”调试了“wp\\u set\\u object\\u terms”,得到了“Invalid Taxonomy”消息,然后我意识到在创建帖子时,这个术语并不存在。因此,我在programmetically\\u create\\u post()函数中将挂钩更改为“init”,瞧!
在这一行下面是代码:
<?php
// TO DO WHEN THEME IS ACTIVATED ///////////////////////
if (isset($_GET[\'activated\']) && is_admin()){
// 3. Add term "mosaic-home" to custom taxonomy "tiles_categories"
function example_insert_category() {
wp_insert_term(
\'Mosaic - Home\',
\'tiles_categories\',
array(
\'description\' => \'Add Tiles here to load in first term\',
\'slug\' => \'mosaic-home\'
)
);
}
add_action(\'init\',\'example_insert_category\');
// 4. Make loop for creating 24 posts
function create_frontles_posts() {
$x = 1;
do {
$post_id = wp_insert_post(array(
\'comment_status\' => \'closed\',
\'ping_status\' => \'closed\',
\'post_author\' => 1,
\'post_name\' => \'tile\'.$x,
\'post_title\' => \'Tile\',
\'post_status\' => \'publish\',
\'post_type\' => \'frontiles\',
// \'tax_input\' => array(\'tiles_categories\' => 2),
));
wp_set_object_terms($post_id, \'mosaic-home\', \'tiles_categories\', true);
$x++;
} while ($x <= 24);
}
// 5. add the loop to the function for create posts
function programmatically_create_post() {
// Initialize the page ID to -1. This indicates no action has been taken.
$post_id = -1;
$title=\'\';
// If the page doesn\'t already exist, then create it
if( null == get_page_by_title( $title ) ) {
create_frontles_posts();
} else {
// Otherwise, we\'ll stop
$post_id = -2;
}
}
add_filter( \'init\', \'programmatically_create_post\' );
} // end to do on activation
?>