如何添加类别的默认值到WordPress的自定义帖子?

时间:2018-06-25 14:24:35

标签: wordpress custom-post-type custom-taxonomy

我在Wordpress中有一个自定义帖子,我想为类别(我的自定义帖子的分类法)添加默认值。当用户在添加帖子时未选择任何类别时。

请帮助我,可用的答案不会帮助我。 预先感谢!

2 个答案:

答案 0 :(得分:0)

这将帮助您完全按照自己的意愿去做:https://wordpress.stackexchange.com/questions/189668/setting-default-category-for-custom-post-type-upon-autosave

法典上的对象术语:https://codex.wordpress.org/Function_Reference/wp_set_object_terms

当他们以自定义帖子类型发布帖子时,此解决方案将设置默认类别。

function save_book_meta( $post_id, $post, $update ) {

    $slug = 'book'; //Slug of CPT

    // If this isn't a 'book' post, don't update it.
    if ( $slug != $post->post_type ) {
        return;
    }

    wp_set_object_terms( get_the_ID(), $term_id, $taxonomy );
}

add_action( 'save_post', 'save_book_meta', 10, 3 );

将来,请先查看Stack Exchange并做大量研究,然后再发布已经有成千上万的答案的问题:)

答案 1 :(得分:0)

您需要在functions.php中添加以下代码,确保您使用自定义分类法更改了自定义分类法,并使用了您希望每个帖子都保存的默认类别来更改了值。

未经测试,但这应该可以工作。

add_action('pre_post_update', 'saving_custom_single_post');
if( !function_exists('saving_custom_single_post') ){
    function saving_custom_single_post( $post_id ){
        if( get_post_type($post_id) == 'custom-post' ){
            $term_list = wp_get_post_terms($post_id, 'custom-taxonomy', array("fields" => "all"));
            if(empty($term_list)){
                wp_set_object_terms( $post_id, 'custom-taxonomy', 'value', false );
            }
        }
    }
}