web-dev-qa-db-ja.com

デフォルトのカテゴリを設定 - 投稿を作成する前にユーザーが選択しなかった場合 -

ユーザが選択しなかったときにcustom_post_typeにデフォルトのhookを設定するためのオプションcategoryがありますか。

例えばRoRはとてもシンプルです - before_saveフィルターを使うことで、update modelの前、またはbefore_createの前に何でも設定できます。

hookをクリックした後、actionが終了する前にPublish some actionを選択し、categorycustom_post_typeに選択されているかどうかを確認する方法そうではない、いくつかのデフォルトを設定?

1
Wordica

たぶんこれはあなたが探しているものですか?

出典は@ Michael Fields

/**
 * Set default cat for cpt
 * @source {https://circlecube.com/says/2013/01/set-default-terms-for-your-custom-taxonomy-default/}
 * @source {http://wordpress.mfields.org/2010/set-default-terms-for-your-custom-taxonomies-in-wordpress-3-0/}
 * @license   GPLv2
 */
function set_default_object_terms_203962( $post_id, $post ) {
if ( 'publish' === $post->post_status ) {
    $defaults = array(
        //'your_taxonomy_id' => array( 'your_term_slug', 'your_term_slug' )
        'post_tag' => array( 'taco', 'banana' ),
        'monkey-faces' => array( 'see-no-evil' ),
        );
    $taxonomies = get_object_taxonomies( $post->post_type );
    foreach ( (array) $taxonomies as $taxonomy ) {
        $terms = wp_get_post_terms( $post_id, $taxonomy );
        if ( empty( $terms ) && array_key_exists( $taxonomy, $defaults ) ) {
            wp_set_object_terms( $post_id, $defaults[$taxonomy], $taxonomy );
        }
    }}
}
add_action( 'save_post', 'set_default_object_terms_203962', 100, 2 );

これは私達にとって魅力のように働きます。

ps、 プラグイン もあります。これは、ユーザーの前にいくつかの願いを '強制'するのに役立ちます(read editor /著者など)も公開することができます。

4
Charles