labels; $labels->name = 'Mesures'; $labels->singular_name = 'Mesure'; $labels->add_new = 'Ajouter une mesure'; $labels->add_new_item = 'Ajouter une mesure'; $labels->edit_item = 'Modifier la mesure'; $labels->new_item = 'Nouvelle mesure'; $labels->view_item = 'Voir la mesure'; $labels->search_items = 'Chercher dans les mesures'; $labels->not_found = 'Aucune mesure trouvée'; $labels->not_found_in_trash = 'Aucune mesure dans la corbeille'; $labels->all_items = 'Toutes les mesures'; $labels->menu_name = 'Mesures'; $labels->name_admin_bar = 'Mesure'; } /** * Suppression de la metabox catégories */ function ccc_remove_metaboxes() { remove_meta_box( 'categorydiv', 'post', 'normal' ); } add_action( 'admin_menu', 'ccc_remove_metaboxes' ); /** * Shortcode affichant la liste des mesures */ function generate_home_posts_list() { // On récupère la liste des mesures par date de MaJ décroissante $measures = get_posts([ 'post_type' => 'post', 'orderby' => 'modified', 'order' => 'DESC', 'numberposts' => -1 ]); // Conteneur pour les filtres $html = "
"; // input pour la recherche $html .= "
"; $html .= '
'; foreach ($measures as $measure) { $status = get_the_terms($measure->ID, 'post-status')[0]; $color = get_field('couleur', 'category_'.$status->term_id); $link = get_field('proposition-url', $measure->ID); $date = get_the_modified_date("d/m/Y à H:i", $measure); $cats = wp_get_object_terms($measure->ID, 'category', ['orderby'=>'parent', 'fields'=>'id=>name']); $html .= "
"; $html .= "

". $measure->post_title ."

"; $html .= "
"; $html .= "

" . implode(' > ', $cats) . "

". $measure->post_excerpt ." Lire la mesure

"; $html .= "

". $status->description . "

"; $html .= "
" . $measure->post_content . "
"; $html .= "

Mise à jour le " . $date . "
"; $html .= "

"; $html .= "
"; } $html .= '
'; return $html; } add_shortcode('mesures', 'generate_home_posts_list'); if ( ! function_exists( 'status_taxonomy' ) ) { // Création de la taxonomie "statuts" function status_taxonomy() { $labels = array( 'name' => 'Statuts', 'singular_name' => 'Statut', 'menu_name' => 'Statut', 'all_items' => 'Tous les statuts', 'parent_item' => 'Statut parent', 'parent_item_colon' => 'Statut parent :', 'new_item_name' => 'Nom du nouveau statut', 'add_new_item' => 'Ajouter un statut', 'edit_item' => 'Modifier le statut', 'update_item' => 'Mettre à jour le statut', 'view_item' => 'Voir le statut', 'separate_items_with_commas' => 'Séparer les statuts par une virugle', 'add_or_remove_items' => 'Ajouter ou supprimer des statuts', 'choose_from_most_used' => 'Choisir parmis les statuts les plus utilisés', 'popular_items' => 'Statuts les plus fréquents', 'search_items' => 'Chercher parmi les statuts', 'not_found' => 'Introuvable', 'no_terms' => 'Aucun statut', 'items_list' => 'Liste des statuts', 'items_list_navigation' => 'Navigation de la liste de statuts', ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'post-status', array( 'post' ), $args ); } add_action( 'init', 'status_taxonomy', 0 ); } /** * On continue le foutoir du function.php avant refactoring * ENREGISTREMENT DES PROPOSITIONS DE MISE À JOUR */ // Sur le papier c'est simple : on attribue au commentaire un au ID de post référent juste avant son enregistrement function filter_sf_comment_referer( $comment_data ) { // On vérifie que le champ ACF soit bien présent if (isset($_POST['acf']['field_6026cfd4eaefc'])) { // si oui on change l'ID de rattachement du commentaire $comment_data['comment_post_ID'] = $_POST['acf']['field_6026cfd4eaefc']; } return $comment_data; } add_filter( 'preprocess_comment' , 'filter_sf_comment_referer', 10, 1); // En pratique on se retrouve à devoir aussi modifier l'affichage du form des commentaires add_filter( 'comment_form_default_fields', 'custom_comment_form_fields', 10 ); function custom_comment_form_fields( $fields ) { // variables névéssaires à la suite $req = get_option( 'require_name_email' ); $commenter = wp_get_current_commenter(); $html_req = ( $req ? " required='required'" : '' ); // le champ nom, on change juste le label $fields['author'] = sprintf('

%s %s

', sprintf( '', 'Prénom et initiale du nom', ( $req ? ' *' : '' ) ), sprintf( '', esc_attr( $commenter['comment_author'] ), $html_req ) ); //on vire l'url qui sert à rien unset($fields['url']); return $fields; } // On change quelques mentions add_filter('comment_form_defaults', 'custom_comment_form_labels', 10); function custom_comment_form_labels ($defaults) { //Modification du titre $defaults['title_reply'] = "Proposer la mise à jour d'une mesure."; //Et du sous titre $defaults['comment_notes_before'] = "Votre adresse e-mail ne sera pas publiée et gardée uniquement le temps de traiter votre proposition.
Les champs obligatoires sont indiqués avec *"; return $defaults; } // Et la rediction function sf_comment_redirect( $location ) { $location = get_page_uri(740); return $location; } add_filter( 'comment_post_redirect', 'sf_comment_redirect' ); // Enfin on ajoute un petit quelque chose aux commentaires vide pour les accepter quand même function sf_accept_empty_comment($post_id, $author=null, $email=null) { $comment = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null; if (!$comment) { $_POST['comment'] = "N/A"; } } add_action('pre_comment_on_post', 'sf_accept_empty_comment'); // Enfin on gère l'affichage function sf_comment_template( $comment, $args, $depth ) { ?>

Statut : name; ?>

Référence :

Source

Commentaire :

comment_approved ) { ?>

'div-comment', 'depth' => $depth, 'max_depth' => $args['max_depth'], 'before' => '', 'after' => '', ) ) ); $by_post_author = twentytwenty_is_comment_by_post_author( $comment ); if ( $comment_reply_link || $by_post_author ) { ?>