了解如何完成任务:
// function to fetch tag ID from name
function get_tag_ID($tag_name)
{ $tag = get_term_by(\'name\', $tag_name, \'post_tag\'); if ($tag) { return $tag->term_id; } else { return NULL;} }
// add categories & tag taxonomy to pages
register_taxonomy_for_object_type( \'category\', \'page\' );
register_taxonomy_for_object_type( \'post_tag\', \'page\' );
// let\'s create some stuff on init
if (isset($_GET[\'activated\']) && is_admin()) //check for init
{
// create categories & tags
if (file_exists (ABSPATH.\'/wp-admin/includes/taxonomy.php\'))
{
require_once (ABSPATH.\'/wp-admin/includes/taxonomy.php\');
// categories
$check = get_cat_ID(\'plants\'); if(empty($check)) {wp_create_category(\'plants\');}
$check = get_cat_ID(\'animals\'); if(empty($check)) {wp_create_category(\'animals\');}
//tags
$check = get_tag_ID(\'tall\'); if (empty($check)) {wp_create_tag(\'tall\');}
$check = get_tag_ID(\'short\'); if (empty($check)) {wp_create_tag(\'short\');}
}
// create pages
$new_page_title = \'carrot\'; // define PAGE TITLE
$new_page_cat = \'plants\'; // define PAGE CATEGORY
$new_page_tag = array(\'tall\'); // define PAGE TAGS
$page_check = get_page_by_title($new_page_title);
if(!isset($page_check->ID)) // verify new page is unique
{
$new_page = array(
\'post_type\' => \'page\',
\'post_title\' => $new_page_title,
\'post_content\' => \'more coming soon\',
\'post_status\' => \'publish\',
\'post_author\' => 1,
\'post_parent\' => \'\', );
$post_cat = get_term_by(\'name\', $new_page_cat, \'category\');
$post_cat = $post_cat->term_id;
$new_page_cat = array($post_cat);
$new_page_id = wp_insert_post($new_page); // create page
wp_set_post_categories( $new_page_id,$new_page_cat, true ); // set category
wp_set_post_tags( $new_page_id,$new_page_tag, true ); // set tags
}
}
@Milo,谢谢你的帮助:)
对于任何希望在激活主题时执行相同操作的人来说,这段代码在我所做的所有测试中都非常有效:验证要创建的类别和标记是否已经存在,验证要创建的页面是否已经存在。页面创建工作正常,并将类别和标记正确链接到创建的页面。当您查看类别或标记索引时,所有正确的关系都会显示出来,因此任何一个的搜索都应该正常工作。
激活主题后,您可以在WP的其他地方使用get\\u tag\\u ID()函数。
现在将为分类法和标签分类法注册页面,尽管编码或plugin 将需要提供管理元数据库。
干杯