<?php
// style and scripts
add_action(‘wp_enqueue_scripts’, ‘bootscore_child_enqueue_styles’);
function bootscore_child_enqueue_styles() {
// style.css
wp_enqueue_style(‘parent-style’, get_template_directory_uri() . ‘/style.css’);
// Compiled main.css
$modified_bootscoreChildCss = date(‘YmdHi’, filemtime(get_stylesheet_directory() . ‘/css/main.css’));
wp_enqueue_style(‘main’, get_stylesheet_directory_uri() . ‘/css/main.css’, array(‘parent-style’), $modified_bootscoreChildCss);
wp_enqueue_style( ‘idevcss1’, get_template_directory_uri() . ‘/css/bootstrap.min.css’, array(), NULL, NULL);
}
add_action(‘wp_enqueue_scripts’, ‘my_enqueue_scripts’);
function my_enqueue_scripts() {
wp_enqueue_script(‘custom-js’, get_stylesheet_directory_uri() . ‘/js/custom.js’, false, ”, true);
wp_enqueue_script(‘jdst-js’, get_stylesheet_directory_uri() . ‘/js/jamaisdeuxsanstrois.js’, false, ”, true);
wp_enqueue_script( ‘thering2’, get_template_directory_uri() . ‘/js/mycustom.js’, array( ‘jquery’ ),”,true );
}
// Fonction pour gérer la recherche basée sur les catégories 2 et 3
function search_by_cat2_cat3() {
$cat2_id = $_POST[‘cat2_id’]; // Récupérer l’ID de la catégorie 2 à partir de la requête AJAX
$cat3_id = $_POST[‘cat3_id’]; // Récupérer l’ID de la catégorie 3 à partir de la requête AJAX
// Employer les IDs des catégories 2 et 3 pour effectuer votre recherche et récupérer les résultats
// dans un tableau ou un objet JSON
$results = array(); // Exemple : tableau vide pour les résultats
// Effectuer votre recherche et remplir le tableau des résultats
// d’après votre logique métier
// …
wp_send_json($results); // Envoyer les résultats de recherche en qualité de réponse JSON
}
add_action(‘wp_ajax_search_by_cat2_cat3’, ‘search_by_cat2_cat3’); // Ajouter l’action AJAX pour les utilisateurs connectés
add_action(‘wp_ajax_nopriv_search_by_cat2_cat3’, ‘search_by_cat2_cat3’); // Ajouter l’action AJAX pour les utilisateurs non connectés
function stevejobs_post_views($postID) {
$count_key = ‘stevejobs_post_views_count’;
$count = get_post_meta($postID, $count_key, true);
if($count == ”){
$count = 0;
delete_post_meta($postID, $count_key);
add_post_meta($postID, $count_key, ‘0’);
} else {
$count++;
update_post_meta($postID, $count_key, $count);
}
}
function stevejobs_track_post_views($post_id) {
if (!is_single()) return;
if (empty($post_id)) {
global $post;
$post_id = $post->ID;
}
stevejobs_post_views($post_id);
}
add_action(‘wp_head’, ‘stevejobs_track_post_views’);
function stevejobs_get_most_viewed_posts($number_of_posts = 5) {
$args = array(
‘posts_per_page’ => $number_of_posts,
‘meta_key’ => ‘stevejobs_post_views_count’,
‘orderby’ => ‘meta_value_num’,
‘order’ => ‘DESC’,
);
$most_viewed_posts = new WP_Query($args);
return $most_viewed_posts;
}
function add_custom_scripts() {
wp_enqueue_script(‘jquery’);
wp_enqueue_script(‘slick-js’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js’, array(‘jquery’), ‘1.6.0’, true);
wp_enqueue_style(‘slick-css’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css’, array(), ‘1.6.0’);
wp_enqueue_style(‘slick-theme-css’, ‘//cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css’, array(‘slick-css’), ‘1.6.0’);
}
add_action(‘wp_enqueue_scripts’, ‘add_custom_scripts’);
// Meta Box Class: ia recherche
class iarechercheMetabox {
private $screen = array(
‘post’,
‘page’,
‘category’,
);
private $meta_fields = array(
array(
‘label’ => ‘insérez un mot clé’,
‘id’ => ‘customia’,
‘default’ => ‘HMAC’,
‘type’ => ‘text’,
),
);
public function __construct() {
add_action( ‘add_meta_boxes’, array( $this, ‘add_meta_boxes’ ) );
add_action( ‘save_post’, array( $this, ‘save_fields’ ) );
}
public function add_meta_boxes() {
foreach ( $this->screen as $single_screen ) {
add_meta_box(
‘iarecherche’,
__( ‘ia recherche’, ‘textdomain’ ),
array( $this, ‘meta_box_callback’ ),
$single_screen,
‘advanced’,
‘default’
);
}
}
public function meta_box_callback( $post ) {
wp_nonce_field( ‘iarecherche_data’, ‘iarecherche_nonce’ );
$this->field_generator( $post );
}
public function field_generator( $post ) {
$output = ”;
foreach ( $this->meta_fields as $meta_field ) {
$label = ‘<label for=”‘ . $meta_field[‘id’] . ‘”>’ . $meta_field[‘label’] . ‘</label>’;
$meta_value = get_post_meta( $post->ID, $meta_field[‘id’], true );
if ( empty( $meta_value ) ) {
if ( isset( $meta_field[‘default’] ) ) {
$meta_value = $meta_field[‘default’];
}
}
switch ( $meta_field[‘type’] ) {
default:
$input = sprintf(
‘<input %s id=”%s” name=”%s” type=”%s” value=”%s”>’,
$meta_field[‘type’] !== ‘color’ ? ‘style=”width: 100%”‘ : ”,
$meta_field[‘id’],
$meta_field[‘id’],
$meta_field[‘type’],
$meta_value
);
}
$output .= $this->format_rows( $label, $input );
}
echo ‘<table class=”form-table”><tbody>’ . $output . ‘</tbody></table>’;
}
public function format_rows( $label, $input ) {
return ‘<tr><th>’.$label.'</th><td>’.$input.'</td></tr>’;
}
public function save_fields( $post_id ) {
if ( ! isset( $_POST[‘iarecherche_nonce’] ) )
return $post_id;
$nonce = $_POST[‘iarecherche_nonce’];
if ( !wp_verify_nonce( $nonce, ‘iarecherche_data’ ) )
return $post_id;
if ( defined( ‘DOING_AUTOSAVE’ ) && DOING_AUTOSAVE )
return $post_id;
foreach ( $this->meta_fields as $meta_field ) {
if ( isset( $_POST[ $meta_field[‘id’] ] ) ) {
switch ( $meta_field[‘type’] ) {
case ’email’:
$_POST[ $meta_field[‘id’] ] = sanitize_email( $_POST[ $meta_field[‘id’] ] );
break;
case ‘text’:
$_POST[ $meta_field[‘id’] ] = sanitize_text_field( $_POST[ $meta_field[‘id’] ] );
break;
}
update_post_meta( $post_id, $meta_field[‘id’], $_POST[ $meta_field[‘id’] ] );
} else if ( $meta_field[‘type’] === ‘checkbox’ ) {
update_post_meta( $post_id, $meta_field[‘id’], ‘0’ );
}
}
}
}
if (class_exists(‘iarechercheMetabox’)) {
new iarechercheMetabox;
};
/*
function my_custom_menu_page() {
add_menu_page(
__( ‘Gestion des tags’, ‘textdomain’ ),
‘Gestion des tags’,
‘manage_options’,
‘my-custom-menu’,
‘my_custom_menu_page_callback’,
‘dashicons-admin-generic’,
6
);
}
add_action( ‘admin_menu’, ‘my_custom_menu_page’ );
function my_custom_menu_page_callback() {
global $wpdb;
// Gestion de la soumission du formulaire
if ( isset( $_POST[‘submit’] ) ) {
$new_tag_name = sanitize_text_field( $_POST[‘new_tag_name’] );
$wpdb->insert( $wpdb->terms, array( ‘name’ => $new_tag_name, ‘slug’ => sanitize_title( $new_tag_name ) ) );
}
// Gestion de la suppression de tags
if ( isset( $_POST[‘delete_tag_id’] ) ) {
$delete_tag_id = intval( $_POST[‘delete_tag_id’] );
$wpdb->query( $wpdb->prepare( “DELETE FROM $wpdb->terms WHERE term_id = %d”, $delete_tag_id ) );
}
// Affichage du formulaire d’ajout de tag
echo ‘<h1>Gestion des tags</h1>’;
echo ‘<form method=”post”>’;
echo ‘<label for=”new_tag_name”>Nouveau tag :</label>’;
echo ‘<input type=”text” name=”new_tag_name” id=”new_tag_name”>’;
echo ‘<input type=”submit” name=”submit” value=”Ajouter”>’;
echo ‘</form>’;
// Affichage de la liste des tags
$tags = $wpdb->get_results( “SELECT * FROM $wpdb->terms ORDER BY name” );
if ( $tags ) {
echo ‘<h2>Liste des tags</h2>’;
echo ‘<ul>’;
foreach ( $tags as $tag ) {
echo ‘<li>’ . $tag->name . ‘ <form method=”post” style=”display: inline;”><input type=”hidden” name=”delete_tag_id” value=”‘ . $tag->term_id . ‘”><input type=”submit” value=”Supprimer”></form></li>’;
}
echo ‘</ul>’;
} else {
echo ‘<p>Aucun tag trouvé.</p>’;
}
}*/
// Ajoute une nouvelle page d’options dans le menu d’administration
add_action(‘admin_menu’, ‘ajouter_page_tags_admin’);
function ajouter_page_tags_admin(){
add_menu_page(
‘Gestion des tags’, // Titre de la page
‘Ajouts suppresion tag’, // Titre du menu
‘manage_options’, // Capacité requise pour afficher la page
‘gestion-tags’, // Slug de la page
‘afficher_page_tags_admin’ // Callback pour afficher la page
);
}
// Affiche la page d’options pour la gestion des tags
function afficher_page_tags_admin(){
// Vérifie que l’utilisateur a les droits nécessaires pour accéder à cette page
if (!current_user_can(‘manage_options’)) {
wp_die(__(‘Vous n’avez pas les droits nécessaires pour accéder à cette page.’));
}
// Si des tags ont été sélectionnés pour suppression, les supprimer de la base de informations
if(isset($_POST[‘supprimer_tags’])){
$tags_a_supprimer = $_POST[‘supprimer_tags’];
foreach($tags_a_supprimer as $tag_id){
wp_delete_term($tag_id, ‘post_tag’);
}
}
// Affiche la liste des tags actuels, avec une case à cocher pour chaque tag pour permettre la suppression de plusieurs tags à la fois
$tags = get_terms(‘post_tag’, array(‘hide_empty’ => false));
if(count($tags) > 0){
echo ‘<h2>Liste des tags</h2>’;
echo ‘<form method=”post”>’;
echo ‘<ul>’;
foreach($tags as $tag){
echo ‘<li><input type=”checkbox” name=”supprimer_tags[]” value=”‘.$tag->term_id.'”>’.$tag->name.'</li>’;
}
echo ‘</ul>’;
echo ‘<input type=”submit” value=”Supprimer les tags sélectionnés”>’;
echo ‘</form>’;
} else {
echo ‘<p>Aucun tag trouvé.</p>’;
}
}
// Fonction pour ajouter l’option de menu personnalisée dans l’administration WordPress
function ajouter_option_import_rtf() {
add_menu_page(
‘Importer des articles RTF’, // Titre de la page
‘Importer RTF’, // Nom dans le menu
‘manage_options’, // Droits requis pour voir l’option de menu
‘importer_rtf’, // ID unique pour l’option de menu
‘afficher_page_import_rtf’, // Fonction d’affichage de la page d’importation
‘dashicons-media-document’, // Icône pour l’option de menu
30 // Position de l’option de menu
);
}
add_action(‘admin_menu’, ‘ajouter_option_import_rtf’);
// Fonction pour afficher la page d’importation RTF
function afficher_page_import_rtf() {
?>
<div class=”wrap”>
<h1>Importer des articles RTF</h1>
<form method=”post” enctype=”multipart/form-data”>
<input type=”file” name=”fichiers[]” multiple=”multiple” accept=”.txt”><br>
<?php wp_nonce_field(‘importer_rtf’, ‘importer_rtf_nonce’); ?>
<input type=”submit” value=”Importer” class=”button button-primary”>
</form>
</div>
<?php
}
// Fonction pour importer les fichiers RTF
function importer_fichiers_rtf() {
if (isset($_POST[‘importer_rtf_nonce’]) && wp_verify_nonce($_POST[‘importer_rtf_nonce’], ‘importer_rtf’)) {
if (isset($_FILES[‘fichiers’]) && $_FILES[‘fichiers’][‘error’][0] == 0) {
$fichiers = $_FILES[‘fichiers’][‘tmp_name’];
foreach ($fichiers as $fichier) {
$contenu = file_get_contents($fichier);
$titre = substr($contenu, 0, strpos($contenu, “n”));
$contenu = str_replace($titre . “n”, “”, $contenu);
$post_data = array(
‘post_title’ => wp_strip_all_tags($titre),
‘post_content’ => $contenu,
‘post_status’ => ‘publish’,
‘post_type’ => ‘post’
);
$post_id = wp_insert_post($post_data);
}
echo ‘<div class=”notice notice-success is-dismissible”><p>Les fichiers ont été importés avec réussite.</p></div>’;
} else {
echo ‘<div class=”notice notice-error is-dismissible”><p>Une erreur est survenue durant l’importation des fichiers.</p></div>’;
}
}
}
add_action(‘admin_init’, ‘importer_fichiers_rtf’);