Existe-t-il une option hook
permettant de définir une category
par défaut pour un custom_post_type
lorsque l'utilisateur n'en a pas choisi?
Par exemple, dans RoR
c'est très simple - en utilisant le filtre before_save
, vous pouvez définir ce que vous voulez avant le modèle update
ou before_create
- avant de le créer ...
Comment puis-je hook
un action
après que l'utilisateur ait cliqué sur Publish
mais avant la fin de la action
.. et vérifier si une category
a été choisie pour un custom_post_type
- sinon, définir une valeur par défaut?
Peut-être que c'est ce que vous cherchez?
La source provient de @ 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 );
Cela fonctionne comme un charme pour nous.
ps, il existe également un plugin qui pourrait vous aider à "forcer" certains de vos souhaits avant un utilisateur (lire l'éditeur/auteur, etc.) peuvent même publier.