当我点击“已发布”时,我想在帖子中添加一个自动类别,也许是通过创建一个函数来放入functions.php?这将节省我的时间,而不是滚动大量的类别来勾选。例如,为所有帖子指定“awesome”类别(同时保留已分配每个帖子的类别)。
头脑风暴法A
是否可以通过为wp_set_post_categories
或wp_set_object_terms
制作一个名为“awesome”类别的函数来实现此目的?我不太了解codex足以定制它以满足我的需求。
<?php wp_set_post_categories( $post_ID, $post_categories, $append ) ?>
or
<?php wp_set_object_terms( $object_id, $terms, $taxonomy, $append ); ?>
头脑风暴法B
另外,我偶然发现this code below,但不知道如何使用它。以下代码对我有用吗?如果是,您如何为名为“awesome”的类别自定义此代码?代码中是否有我需要用我的信息替换的地方?或者你会建议使用上面的代码吗?还是另一种方法?
“CODE A”:保存后自动对帖子进行分类和标记(取自wpsnipp.com)
<?php
add_action( 'wp_insert_post', 'update_post_terms' );
function update_post_terms( $post_id ) {
if ( $parent = wp_is_post_revision( $post_id ) )
$post_id = $parent;
$post = get_post( $post_id );
if ( $post->post_type != 'post' )
return;
// add a tag
wp_set_post_terms( $post_id, 'new tag', 'post_tag', true );
// add a category
$categories = wp_get_post_categories( $post_id );
$newcat = get_term_by( 'name', 'Some Category', 'category' );
array_push( $categories, $newcat->term_id );
wp_set_post_categories( $post_id, $categories );
}
?>
答案 0 :(得分:1)
我只是走简单的路线,用jQuery做。将所需类别的ID放在选择器中(在此示例中为#in-category-7
):
add_action( 'admin_head-post-new.php', 'mark_default_category' );
add_action( 'admin_head-post.php', 'mark_default_category' );
function mark_default_category()
{
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#in-category-7').prop('checked',true);
});
</script>
<?php
}
使用钩子和所有这些来研究save_post
+ wp_insert_term
。在这些搜索结果中,我没有找到精炼save_post
的示例(并且需要)。仅搜索save_post
以获取良好示例。