<?php /* functions.php * * All the function of Kazhnuz.Space * */ /* 0. Excerpt and thumbnail support * * Ces fonctions ajoutent les fonctionnalités de base du theme, * tel que les extraits et les miniatures. */ function kspace_post_supports() { add_post_type_support( 'post', 'excerpt'); } add_action( 'init', 'kspace_post_supports' ); add_theme_support( 'post-thumbnails' ); set_post_thumbnail_size( 825, 510, true ); /* 1. Niveau support * * Permet d'afficher les niveaux de post pour les post features */ // 1.1 - Enregistrement de la taxonomy pour le flag register_taxonomy( 'flag', 'post', array( 'label' => 'Flag', 'labels' => array( 'name' => 'Flags', 'singular_name' => 'Flag', 'all_items' => 'Tous les flags', 'edit_item' => 'Éditer le flag', 'view_item' => 'Voir le flag', 'update_item' => 'Mettre à jour le flag', 'add_new_item' => 'Ajouter un flag', 'new_item_name' => 'Nouveau flag', 'search_items' => 'Rechercher parmi les flags', 'popular_items' => 'Flags les plus utilisés' ), 'hierarchical' => false ) ); register_taxonomy_for_object_type( 'flag', 'post' ); // 1.2 - Ajout/Modif du niveau du flag function flags_taxonomy_custom_fields($tag) { // Check for existing taxonomy meta for the term you're editing $t_id = $tag->term_id; // Get the ID of the term you're editing $term_meta = get_option( "taxonomy_term_$t_id" ); // Do the check ?> <tr class="form-field"> <th scope="row" valign="top"> <label for="niveau"><?php _e('Niveau du flag'); ?></label> </th> <td> <input type="text" name="term_meta[niveau]" id="term_meta[niveau]" size="25" style="width:60%;" value="<?php echo $term_meta['niveau'] ? $term_meta['niveau'] : ''; ?>"><br /> <span class="description"><?php _e('Le niveau du flag (info, warning, danger…)'); ?></span> </td> </tr> <?php } function flags_taxonomy_custom_fields_add( $taxonomy ) { // Check for existing taxonomy meta for the term you're editing $t_id = $tag->term_id; // Get the ID of the term you're editing $term_meta = get_option( "taxonomy_term_$t_id" ); // Do the check ?> <div class="form-field"> <label for="term_meta[niveau]"><?php _e('Niveau du flag'); ?></label> <input type="text" name="term_meta[niveau]" id="term_meta[niveau]" /> <p><?php _e('Le niveau du flag (info, warning, danger…)'); ?>.</p> </div> <?php } add_action( 'post_tag_edit_form_fields', 'kspace_edit_term_fields', 10, 2 ); // 1.3 - Sauvegarde du niveau du flag function save_taxonomy_custom_fields( $term_id ) { if ( isset( $_POST['term_meta'] ) ) { $t_id = $term_id; $term_meta = get_option( "taxonomy_term_$t_id" ); $cat_keys = array_keys( $_POST['term_meta'] ); foreach ( $cat_keys as $key ){ if ( isset( $_POST['term_meta'][$key] ) ){ $term_meta[$key] = $_POST['term_meta'][$key]; } } //save the option array update_option( "taxonomy_term_$t_id", $term_meta ); } } // Ajout des fields add_action( 'flag_edit_form_fields', 'flags_taxonomy_custom_fields', 10, 2 ); add_action( 'flag_add_form_fields', 'flags_taxonomy_custom_fields_add' ); add_action( 'created_flag', 'save_taxonomy_custom_fields' ); add_action( 'edited_flag', 'save_taxonomy_custom_fields', 10, 2 ); function kspace_cat_breadcrumb_nav($categoryName, $icon) { ?> <nav aria-label="breadcrumb"> <ol class="breadcrumb"> <li class="breadcrumb-item"><a href="<?php echo site_url(); ?>">kazhnuz.space</a> </li><li class="breadcrumb-item" aria-current="page"> <span class="active"><i class="fa fa-<?php echo $icon; ?>" aria-hidden="true"></i> <?php echo $categoryName; ?></span> </li> </ol> </nav> <?php } function kspace_cat_breadcrumb($categoryName, $icon) { ?> <div class="flex-that"> <?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?> </div> <?php } function kspace_cat_breadcrumb_with_rss($categoryName, $icon, $categoryType, $rssLink) { ?> <div class="flex-that"> <?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?> <div class="rss"> <a href="<?php echo $rssLink; ?>" class="btn btn-orange" /><i class="fa fa-rss" aria-hidden="true"></i><span class="sr-only">Flux RSS de <?php echo $categoryType; ?></span></a> </div> </div> <?php } /* 3. Plus d'info sur les tags * * Permet d'afficher un lien vers plus d'informations. * Le liens est gardé comme un champ supplémentaire dans les tags. * */ add_action( 'post_tag_add_form_fields', 'kspace_add_term_fields' ); function kspace_add_term_fields( $taxonomy ) { echo '<div class="form-field"> <label for="plus-dinfo">Plus d\'Info</label> <input type="text" name="plus-dinfo" id="plus-dinfo" /> <p>Une URL permettant d\'obtenir plus d\'information sur le tag.</p> </div>'; } add_action( 'post_tag_edit_form_fields', 'kspace_edit_term_fields', 10, 2 ); function kspace_edit_term_fields( $term, $taxonomy ) { $value = get_term_meta( $term->term_id, 'plus-dinfo', true ); echo '<tr class="form-field"> <th> <label for="plus-dinfo">Plus d\'Info</label> </th> <td> <input name="plus-dinfo" id="plus-dinfo" type="text" value="' . esc_attr( $value ) .'" /> <p class="description">Une URL permettant d\'obtenir plus d\'information sur le tag.</p> </td> </tr>'; } add_action( 'created_post_tag', 'kspace_save_term_fields' ); add_action( 'edited_post_tag', 'kspace_save_term_fields' ); function kspace_save_term_fields( $term_id ) { update_term_meta( $term_id, 'plus-dinfo', sanitize_text_field( $_POST[ 'plus-dinfo' ] ) ); } /* 3. Info supplémentaire sur profil utilisateur * * Permet d'afficher sous forme de chaine de caractères des infos supplémentaires qui seront * transformé en un tableau.. * */ add_action( 'show_user_profile', 'kspace_show_extra_profile_fields' ); add_action( 'edit_user_profile', 'kspace_show_extra_profile_fields' ); function kspace_show_extra_profile_fields( $user ) { $year = get_the_author_meta( 'infodata', $user->ID ); ?> <h3><?php esc_html_e( 'More Info', 'kspace' ); ?></h3> <table class="form-table"> <tr> <th><label for="infodata"><?php esc_html_e( 'infodata', 'kspace' ); ?></label></th> <td> <input type="input" id="infodata" name="infodata" value="<?php echo esc_attr( $year ); ?>" class="regular-text" /> </td> </tr> </table> <?php } add_action( 'personal_options_update', 'kspace_update_profile_fields' ); add_action( 'edit_user_profile_update', 'kspace_update_profile_fields' ); function kspace_update_profile_fields( $user_id ) { if ( ! current_user_can( 'edit_user', $user_id ) ) { return false; } update_user_meta( $user_id, 'infodata', $_POST['infodata'] ); } /* 4. Romans * * Permet de catégoriser des chapitres ensemble, via une catégorie spécifiques. * */ register_taxonomy('roman', 'post', array( 'label' => 'Roman', 'labels' => array( 'name' => 'Romans', 'singular_name' => 'Roman', 'all_items' => 'Tous les romans', 'edit_item' => 'Éditer le roman', 'view_item' => 'Voir le roman', 'update_item' => 'Mettre à jour le roman', 'add_new_item' => 'Ajouter un roman', 'new_item_name' => 'Nouveau roman', 'search_items' => 'Rechercher parmi les romans', 'popular_items' => 'Romans les plus utilisés'), 'rewrite' => array('slug' => 'roman'), 'hierarchical' => false, 'public' => true, 'hierarchical' => true, 'show_in_nav_menus' => true, 'has_archive' => true, ) ); register_taxonomy_for_object_type( 'roman', 'post' ); // 1.2 - Ajout/Modif du niveau du flag function romans_taxonomy_custom_fields($tag) { // Check for existing taxonomy meta for the term you're editing $t_id = $tag->term_id; // Get the ID of the term you're editing $term_meta = get_option( "taxonomy_term_$t_id" ); // Do the check ?> <tr class="form-field"> <th scope="row" valign="top"> <label for="niveau"><?php _e('Couverture du roman'); ?></label> </th> <td> <input type="text" name="term_meta[cover]" id="term_meta[cover]" size="25" style="width:60%;" value="<?php echo $term_meta['cover'] ? $term_meta['cover'] : ''; ?>"><br /> <span class="description"><?php _e('La couverture du roman, sous format URL'); ?></span> </td> </tr> <?php } function romans_taxonomy_custom_fields_add( $taxonomy ) { // Check for existing taxonomy meta for the term you're editing $t_id = $tag->term_id; // Get the ID of the term you're editing $term_meta = get_option( "taxonomy_term_$t_id" ); // Do the check ?> <div class="form-field"> <label for="term_meta[cover]"><?php _e('Couverture du roman'); ?></label> <input type="text" name="term_meta[cover]" id="term_meta[cover]" /> <p><?php _e('La couverture du roman, sous format URL)'); ?>.</p> </div> <?php } // Ajout des fields add_action( 'roman_edit_form_fields', 'romans_taxonomy_custom_fields', 10, 2 ); add_action( 'roman_add_form_fields', 'romans_taxonomy_custom_fields_add' ); add_action( 'created_roman', 'save_taxonomy_custom_fields' ); add_action( 'edited_roman', 'save_taxonomy_custom_fields', 10, 2 ); /* 4. Menus custom * * Quelques menus custom * */ function wpb_custom_new_menu() { register_nav_menus( array( 'top-navbar' => __( 'Navbar (gauche)' ), 'top-navbar-2' => __( 'Navbar (droite)' ), 'link-menu' => __( 'Liste des liens' ), 'footer-pages' => __( 'Pages dans le footer' ), 'social' => __( 'Reseaux sociaux' ), 'social-plus' => __( 'Reseaux sociaux supplémentaires' ), ) ); } add_action( 'init', 'wpb_custom_new_menu' );