ich habe den Code, der einen Beitrag in einem benutzerdefinierten Beitragstyp hinzufügen kann, aber das Hinzufügen der Kategorie funktioniert nicht.
$args = array(
'post_title' => $title ,
'post_status' => 'publish',
'post_type' => 'mypost'
);
$post_id = wp_insert_post($args);
$category_ids = array(38,39);
wp_set_post_categories( $post_id, $category_ids, 'category');
Sie müssen den benutzerdefinierten Beitragstyp mit Unterstützung für die Taxonomie category
registrieren:
add_action('init', 'cyb_register_post_type');
function cyb_register_post_type() {
$args = array(
// All the other args
'taxonomies' => array( 'category' ),
);
register_post_type( 'my_post_type', $args );
}
Anschließend können Sie wie zuvor Beziehungen zwischen dem benutzerdefinierten Beitragstyp und der Taxonomie categoy
festlegen, müssen aber den Code korrigieren.
Davon:
wp_set_post_categories( $post_id, $category_ids, 'category');
Dazu (vorherige Kategorien werden gelöscht und durch die neuen Kategorien ersetzt):
wp_set_post_categories( $post_id, $category_ids );
// The above line is equivalent to
// wp_set_post_categories( $post_id, $category_ids, false );
// or
// wp_set_post_terms( $post_id, $category_ids, 'category', false );
Oder an (vorherige Kategorien werden nicht gelöscht, neue Kategorien werden angehängt):
wp_set_post_categories( $post_id, $category_ids, true );
Sie können auch eine benutzerdefinierte Taxonomie registrieren und für Ihren benutzerdefinierten Beitragstyp verwenden:
add_action('init', 'cyb_register_post_type_and_taxonomy');
function cyb_register_post_type_and_taxonomy() {
$post_type_args = array(
// All the other args
'taxonomies' => array( 'my_custom_taxonomy' ),
);
register_post_type( 'my_post_type', $post_type_args );
$taxonomy_args = array(
// Arguments for the custom taxonomy
// See https://developer.wordpress.org/reference/functions/register_taxonomy/
);
register_taxonomy( 'my_custom_taxonomy', 'my_post_type', $args );
}
Und dann benutze wp_set_post_terms()
, nicht wp_set_post_categories()
:
wp_set_post_terms( $post_id, $category_ids, 'my_custom_taxonomy');
Da Sie dies für den benutzerdefinierten Beitragstyp tun, müssen Sie die Taxonomie verwenden. Ich werde Ihnen vorschlagen, <?php wp_set_post_terms( $post_id, $terms, $taxonomy, $append ) ?>
zu verwenden. Informationen zur detaillierten Verwendung der Funktion finden Sie unter diesem Link .