我正在尝试创建几个自定义帖子,并在插件激活时为其设置自定义分类术语。我正在使用注册插件激活挂钩来完成它。职位设置正确,但我没有设置职位期限。我正在使用wp_set_object_terms
去做吧。可能的原因是什么?
我的代码类似于:
register_activation_hook( __FILE__, \'insert_latest_books\' );
public function insert_latest_books() {
//Get the latest books
$data = new Data_Fetcher();
$latest_books = $data->get_latest_books();
foreach($latest_books as $latest_book) {
//Create a book post for each latest book
$book = [
\'post_type\' => \'book\',
\'post_status\' => \'publish\',
\'post_title\' => $latest_book->name,
\'post_content\' => $latest_book->description
];
$book_id = wp_insert_post($book);
//TODO: Not working on plugin activation
wp_set_object_terms($book_id, array(\'latest\'), \'label\');
set_book_thumbnail($book_id, $latest_book->name, $latest_book->preview_image_url);
update_post_meta($book_id, \'book_code\', $latest_book->embed_code);
update_post_meta($book_id, \'book_pages\', $latest_book->length);
}
}
最合适的回答,由SO网友:Rutwick Gangurde 整理而成
我从@Pieter Goosen和@Ignat的评论中了解到。B、 和@Pieter Goosen的回答here, 我需要在插件激活时注册分类法,并插入术语。然后我需要将分类法注册代码挂接到init
法典建议的行动挂钩。这将确保在插入插件激活术语时,我已经注册了分类法,并且init
我按照WordPress的指示使用init来达到这个目的。
伪代码:
function register_tax() {
//Register the taxonomy
}
function activate() {
register_tax();
wp_insert_term(...);
}
register_activation_hook(\'...\', \'activate\');
add_action(\'init\', \'register_tax\');
希望这能帮助陷入类似情况的人。如果你需要解释,皮特的回答真的很有帮助。