chore: split functions.php
This commit is contained in:
parent
69794803c2
commit
3b1e2eca06
8 changed files with 359 additions and 329 deletions
325
functions.php
325
functions.php
|
@ -5,309 +5,13 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/* 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, 825, 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 d-none d-flex-sm pr-half pl-half">
|
||||
<?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
function kspace_cat_breadcrumb_with_rss($categoryName, $icon, $categoryType, $rssLink) {
|
||||
?>
|
||||
<div class="flex-that d-none d-flex-sm pr-half pl-half">
|
||||
<?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?>
|
||||
<div class="rss">
|
||||
<a href="<?php echo $rssLink; ?>" class="btn btn-warning d-block m-0" /><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
|
||||
*
|
||||
*/
|
||||
include(TEMPLATEPATH . '/functions/posts-support.php');
|
||||
include(TEMPLATEPATH . '/functions/flags.php');
|
||||
include(TEMPLATEPATH . '/functions/breadcrumb.php');
|
||||
include(TEMPLATEPATH . '/functions/tags-moreinfo.php');
|
||||
include(TEMPLATEPATH . '/functions/profile-extra-fields.php');
|
||||
include(TEMPLATEPATH . '/functions/romans.php');
|
||||
include(TEMPLATEPATH . '/functions/reading-time.php');
|
||||
|
||||
function wpb_custom_new_menu() {
|
||||
register_nav_menus(
|
||||
|
@ -324,17 +28,4 @@ register_taxonomy('roman', 'post',
|
|||
add_action( 'init', 'wpb_custom_new_menu' );
|
||||
|
||||
//estimated reading time
|
||||
function reading_time() {
|
||||
$content = get_post_field( 'post_content', $post->ID );
|
||||
$word_count = str_word_count( strip_tags( $content ) );
|
||||
$readingtime = ceil($word_count / 200);
|
||||
|
||||
if ($readingtime == 1) {
|
||||
$timer = " minute";
|
||||
} else {
|
||||
$timer = " minutes";
|
||||
}
|
||||
$totalreadingtime = $readingtime . $timer;
|
||||
|
||||
return $totalreadingtime;
|
||||
}
|
||||
?>
|
40
functions/breadcrumb.php
Normal file
40
functions/breadcrumb.php
Normal file
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Breadcrumb supports
|
||||
// Functions to show a breadcrumb
|
||||
// @author Kazhnuz
|
||||
|
||||
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 d-none d-flex-sm pr-half pl-half">
|
||||
<?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
function kspace_cat_breadcrumb_with_rss($categoryName, $icon, $categoryType, $rssLink) {
|
||||
?>
|
||||
<div class="flex-that d-none d-flex-sm pr-half pl-half">
|
||||
<?php kspace_cat_breadcrumb_nav($categoryName, $icon); ?>
|
||||
<div class="rss">
|
||||
<a href="<?php echo $rssLink; ?>" class="btn btn-warning d-block m-0" /><i class="fa fa-rss" aria-hidden="true"></i><span class="sr-only">Flux RSS de <?php echo $categoryType; ?></span></a>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
?>
|
91
functions/flags.php
Normal file
91
functions/flags.php
Normal file
|
@ -0,0 +1,91 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Flags supports
|
||||
// Allow to show a banner with a custom message, via a special taxonomy
|
||||
//
|
||||
// Version 0.1
|
||||
|
||||
// Register the taxonomy
|
||||
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' );
|
||||
|
||||
// Add field to be able to change the flags
|
||||
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 );
|
||||
|
||||
// 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 );
|
||||
|
||||
?>
|
20
functions/posts-support.php
Normal file
20
functions/posts-support.php
Normal file
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Posts supports
|
||||
// Activate the different elements supported by the posts
|
||||
//
|
||||
// Version 0.1
|
||||
|
||||
// Support des extraits
|
||||
function kspace_post_supports() {
|
||||
add_post_type_support( 'post', 'excerpt');
|
||||
}
|
||||
|
||||
add_action( 'init', 'kspace_post_supports' );
|
||||
|
||||
// Support des thumbnails
|
||||
add_theme_support( 'post-thumbnails' );
|
||||
set_post_thumbnail_size( 825, 825, true );
|
||||
|
||||
|
||||
?>
|
42
functions/profile-extra-fields.php
Normal file
42
functions/profile-extra-fields.php
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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'] );
|
||||
}
|
||||
|
||||
?>
|
23
functions/reading-time.php
Normal file
23
functions/reading-time.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Reading time
|
||||
// Return the average reading time of an article
|
||||
//
|
||||
// Version 0.1
|
||||
|
||||
function reading_time() {
|
||||
$content = get_post_field( 'post_content', $post->ID );
|
||||
$word_count = str_word_count( strip_tags( $content ) );
|
||||
$readingtime = ceil($word_count / 200);
|
||||
|
||||
if ($readingtime == 1) {
|
||||
$timer = " minute";
|
||||
} else {
|
||||
$timer = " minutes";
|
||||
}
|
||||
$totalreadingtime = $readingtime . $timer;
|
||||
|
||||
return $totalreadingtime;
|
||||
}
|
||||
|
||||
?>
|
73
functions/romans.php
Normal file
73
functions/romans.php
Normal file
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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 );
|
||||
|
||||
?>
|
50
functions/tags-moreinfo.php
Normal file
50
functions/tags-moreinfo.php
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Tags - More Info
|
||||
// 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_moreinfo' );
|
||||
|
||||
function kspace_add_term_fields_moreinfo( $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_moreinfo', 10, 2 );
|
||||
|
||||
function kspace_edit_term_fields_moreinfo( $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_moreinfo' );
|
||||
add_action( 'edited_post_tag', 'kspace_save_term_fields_moreinfo' );
|
||||
|
||||
function kspace_save_term_fields_moreinfo( $term_id ) {
|
||||
|
||||
update_term_meta(
|
||||
$term_id,
|
||||
'plus-dinfo',
|
||||
sanitize_text_field( $_POST[ 'plus-dinfo' ] )
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
Reference in a new issue