我正在一个播客网站上工作,该网站的主题要求所有播客插曲帖子都必须采用一种称为qtserie的自定义分类法。这些插曲应该属于的特定qtserie分类法的名称称为“main\\u podcast”。
我有一个插件,当一集播出时,它会自动从播客RSS提要创建帖子,但该插件无法指定自定义分类法。如何让网站自动将名为“podcast”的qtserie分类法分配给插件制作的任何新podcast帖子?我想我会让插件为新帖子分配一个任意类别,并且需要以某种方式使用in\\u category,但我在代码方面遇到了问题。
这是插件代码的一部分
// Create the post
global $wpdb;
$post_id;
// Check if post already exists, if so - skip. First we\'ll look for the GUID, then at the title.
if(!empty($guid) && $guid != \'\') {
$query = "SELECT COUNT(*) FROM {$wpdb->postmeta} WHERE (meta_key = \'secondline_imported_guid\' AND meta_value LIKE \'%$guid%\')";
$guid_count = intval($wpdb->get_var($query));
} else {
$guid_count = 0;
}
if($guid_count == 0) {
if( 0 === post_exists( $post_title, "", "", $secondline_import_post_type )) {
$post_id = wp_insert_post( $post );
// Continue if the import generate errors
if ( is_wp_error( $post_id ) ) {
continue;
}
// Add GUID for each post
add_post_meta( $post_id, \'secondline_imported_guid\', $guid, true );
// Import Episode Number and Season Number
if ( function_exists(\'secondline_themes_theme_updater\')) {
if (isset($episode_number) && $episode_number !== \'\') {
add_post_meta( $post_id, \'secondline_themes_episode_number\', $episode_number, true );
}
if (isset($season_number) && $season_number !== \'\') {
add_post_meta( $post_id, \'secondline_themes_season_number\', $season_number, true );
}
}
// Add episode categories
if( !empty($secondline_import_category) ) {
if( $secondline_import_post_type == \'podcast\' ) {
wp_set_post_terms( $post_id, $secondline_import_category, \'series\', false );
} else {
wp_set_post_terms( $post_id, $secondline_import_category, \'category\', false );
}
}
````
SO网友:JakeParis
你会想钩住wp_insert_post
action. 创建新帖子后,您可以将其分配给所需的分类法/术语。
它可能看起来像这样:
add_action(\'wp_insert_post\', function($postId, $post, $updatingExisting) {
if( $updateExisting )
return;
// read up on these params at http://developer.wordpress.org/reference/functions/wp_set_post_terms/
wp_set_post_terms( $postId, \'main_podcast\', \'qtserie\', true);
}, 10, 3);
根据站点上发生的其他情况,您可能需要在过滤器内进行一些检查,以确保您只更新您想要的帖子(这将在创建所有帖子、页面、自定义帖子类型等时运行)。