[WordPress] Astuce : Ajouter un placeholder à GravityForm

Pour certains formulaire, j’utilise le plugin payant Gravity Forms qui permet de créer des formulaires avancés.

Le hack suivant vous permettra de lui ajouter un placeholder, il est à placer dans le fichier functions.php de votre thème.

add_action("gform_field_standard_settings", "my_standard_settings", 10, 2);
function my_standard_settings($position, $form_id){
	if($position == 25){ // Create settings on position 25 (right after Field Label)
		?>
		
  • //binding to the load field settings event to initialize the checkbox jQuery(document).bind("gform_load_field_settings", function(event, field, form){ jQuery("#field_placeholder").val(field["placeholder"]); }); jQuery(function(){ $field){ /* Check if the field has an assigned placeholder */ if(isset($field['placeholder']) && !empty($field['placeholder'])){ /* If a placeholder text exists, inject it as a new property to the field using jQuery */ ?>jQuery('#input__').attr('placeholder',''); });

    Et voilà !

    Edit : A partir de la version 1.9 de Gravity Forms, un champ Placeholder est inséré dans le formulaire, il n'y a donc plus besoin de ce hack ^^

    Source

    [WordPress] Astuce : Remplir dynamiquement un select avec GravityForm

    Pour certains formulaire, j’utilise le plugin payant Gravity Forms qui permet de faire des formulaires avancés.

    Le hack suivant vous permettra de remplir dynamiquement un select, il est à placer dans le fichier functions.php de votre thème.

    add_filter('gform_pre_render_2', 'populate_posts'); // Changer le '2' par l'ID de votre formulaire
    function populate_posts($form){
    	foreach($form['fields'] as &$field){
    		if($field['cssClass'] == 'NOM_CLASSE'){ // Nom de la classe que vous avez mis dans le formulaire
    			$taxonomies = array('NOM_TAXO');
    			$arg_taxo = array('orderby'=>'name', 'order'=>'ASC'); 
    			$categories = get_terms($taxonomies, $arg_taxo);
    			$choices = array(array('text' => 'Indifférent', 'value' => ' ')); // Changer 'Indifférent' par ce que vous souhaitez
    			foreach($categories as $categorie) $choices[] = array('text' => $categorie->name, 'value' => $categorie->slug);
    			$field['choices'] = $choices;
    		}
    	}
    	return $form;
    }

    Et voilà !

    Source

    [WordPress] Astuce : Coupe un texte à N caractères

    Voici un petit hack qui vous permettra de couper un texte à N caractères et ajoute des points de suspension…

    Ce code est à placer dans le fichier functions.php de votre thème.

    function tronque($chaine, $longueur = 150){
    	if(empty($chaine)){ return ''; }
    	elseif(strlen($chaine) < $longueur){ return $chaine; }
    	elseif(preg_match("/(.{1,$longueur})s./ms", $chaine, $match)){ return $match [1]."..."; }
    	else{ return substr($chaine, 0, $longueur)."..."; }
    }

    Et dans un fichier PHP :

    tronque(get_the_content(), 150)

    Et voilà !

    [WordPress] Astuce : Désactiver notification de mise à jour

    Si vous avez besoin de modifier vos plugins pour une raison ou pour une autre, vous pouvez désactiver les notifications de mise à jour.

    Voici donc un petit hack pour ce faire. Ce code est à placer dans le fichier functions.php de votre thème.

    function stop_plugin_update($value){
    	unset($value->response['NOM_REPERTOIRE/NOM_FICHIER_PRINCIPAL.php']); // Les noms sont le plus souvent les mêmes
    	return $value;
    }
    add_filter('site_transient_update_plugins', 'stop_plugin_update');

    Et voilà !

    [WordPress] Astuce : Plugin Advanced Custom Field

    Pour ces astuces, j’ai utilisé le plugin Advanced Custom Field (ACF).

    Récupération des images avec ACF

    NOM_VAR = get_field('NOM_CUSTOM_FIELD', $post->ID);
    

    Boucle avec un champ SELECT de ACF

    $NOM_VARS = get_post_meta($post->ID, 'NOM_CUSTOM_FIELD', true);
    foreach($NOM_VARS as $NOM_VAR){
    	// LE CODE
    }

    OU

    $NOM_VARS = get_field('NOM_CUSTOM_FIELD', $post->ID);
    if($NOM_VARS == 'code_1'){
    	// CODE OPTION 1
    }elseif($NOM_VARS == 'code_2'){
    	// CODE OPTION 2
    }else{
    	// CODE OPTION 3
    }

    Afficher plusieurs champs continu

    for($i=1; $i<=3; $i++){
    	$img = get_field('NOM_DU_CHAMP'.$i, $post->ID);
    }

    Et voilà !

    [WordPress] Astuce : Récupération dynamique des catégories

    Pour récupérer TOUTES les catégories, ajouter ce bout de code :

    $taxonomies = array('NOM_CATEGORIE');
    $arg_taxo = array('orderby'=>'id', 'order'=>'ASC'); 
    $categories = get_terms($taxonomies, $arg_taxo);

    Pour récupérer SEULEMENT les catégories d’un post, ajouter ce bout de code :

    $categories = wp_get_post_terms($post->ID, 'NOM_CATEGORIE', array("fields" => "all"));
    foreach($categories as $categorie) echo $categorie->name;

    Penser à remplacer : NOM_CATEGORIE

    Et voilà !

    [WordPress] Astuce – Custom Post avec taxonomie

    Voici un bout de code permettant d’afficher un custom post avec une taxonomie spécifique et d’ajouter une pagination.

    Penser à bien remplacer NOM_DU_CUSTOM_POST par le nom de votre custom post, NOM_DE_LA_CATEGORIE par le nom de votre catégorie et IDENTIFIANT_DE_LA_CATEG par l’identifiant de votre catégorie.

     'NOM_DU_CUSTOM_POST',
    	'posts_per_page' => 10,
    	'order'		 => 'DESC',
    	'orderby'	 => 'post_date',
    	'tax_query'	 => array(
    			array(
    				'taxonomy'	=> 'NOM_DE_LA_CATEGORIE',
    				'field'		=> 'id',
    				'terms'		=> IDENTIFIANT_DE_LA_CATEG
    			)
    		),
    	'paged'				=> $paged,
    	'suppress_filters'	=> false,
    ));
    if(have_posts()):
    	while(have_posts()) :	the_post();
    		// La boucle des post
    	endwhile;
    	wp_pagenavi();
    else:
    	// Aucun post
    endif;
    wp_reset_query(); // Reset Query
    ?>

    Et voilà !

    [WordPress] Import de post via un xml

    Dernièrement, lors d’un projet sur WordPress, j’ai dû créer des articles via un xml. Pour ce faire, j’ai dû extraire le contenu d’un zip (situé à la racine du ftp) et importer le xml avec les images associées pour créer des articles.

    I – Extraction du zip

    Pour extraire le contenu du dossier zip, j’ai réalisée un plugin.

    Pour ce faire, créez un dossier dans le dossier « plugins » de WordPress et nommez le (par ex import_des_annonces). Puis créez un fichier php avec le même nom (par ex : import_des_annonces.php).

    Enfin, collez le code suivant :

    open('CHEMIN_ABSOLU/export_quimper.zip') === TRUE){
    		//extract contents to /data/ folder
    		$zip->extractTo('CHEMIN_ABSOLU/zip/');
    		//close the archive
    		$zip->close();
    		echo 'Archive extracted to zip/ folder!';
    	}else{
    		echo 'Failed to open the archive!';
    	}
    }
    add_action('extract_zip_hook', "extract_zip");

    ATTENTION : remplacer « CHEMIN_ABSOLU » par le chemin vers votre fichier.
    Pour trouver le chemin absolu :

    1. Créer un fichier « chemin.php » à la racine de votre ftp
    2. Écrivez celle ligne : et sauvegarder votre fichier
    3. Ouvrez votre navigateur et allez voir ce fichier PHP. Il vous donne le chemin absolu, par exemple : /home/site/www/admin/chemin.php
    4. Copiez le code SANS chemin.php et collez le dans le plugin à la place de « CHEMIN_ABSOLU »

    Continuer la lecture

    [WordPress] Ajouter des champs personnalisés dans les Taxonomies

    Pour un projet, je me suis retrouvée à devoir rajouter des champs custom dans une catégorie. Seulement voilà, même l’excellent Advanced Custom Fields (ACF) ne peut pas rajouter de champs au catégorie…

    Donc j’ai finis par mettre la main sur une classe PHP qui permet d’ajouter des champs sur les taxonomies WordPress.

    Inclure les fichiers

    Transferez sur votre FTP les fichiers que vous trouverez ici.

    Puis, insérez un bout de code dans le fichier functions.php

    //include the main class file
    require_once("Tax-meta-class/Tax-meta-class.php");

    Une fois que la classe est incluse dans votre fichier de fonctions, il faudra paramétrer le champs personnalisé que vous souhaitez ajouter avec les paramètres suivants :

    //configure taxonomy custom fields
    $config = array(
    	'id' => 'demo_meta_box',		// meta box id, unique per meta box
    	'title' => 'Demo Meta Box',		// meta box title
    	'pages' => array('category'),	// taxonomy name, accept categories, post_tag and custom taxonomies
    	'context' => 'normal',			// where the meta box appear: normal (default), advanced, side; optional
    	'fields' => array(),			// list of meta fields (can be added by field arrays)
    	'local_images' => false,		// Use local or hosted images (meta box images for add/remove)
    	'use_with_theme' => false		//change path if used with theme set to true, false for a plugin or anything else for a custom path(default false).
    );

    Initialiser le champs personnalisé

    // Initiate your taxonomy custom fields
    $my_meta = new Tax_Meta_Class($config);

    Ajouter un champs personnalisé

    //text field
    $my_meta->addText('text_field_id',array('name'=> 'Mon champ texte'));
    //textarea field
    $my_meta->addTextarea('textarea_field_id',array('name'=> 'Ma zone de texte'));

    Pour en savoir plus sur tous les types de champs, je vous laisse les consulter sur le site du développeur.

    // Don't Forget to Close up the meta box deceleration
    //Finish Taxonomy Extra fields Deceleration
    $my_meta->Finish();

    Quand vous avez inclus, paramétré et ajouté les champs que vous vouliez, il ne faudra pas oublier d’arrêter le processus.

    Utilisation front-end

    Pour utiliser les informations collectées dans votre champs personnalisé, il ne reste qu’à l’appeler de la manière suivante :

    $saved_data = get_tax_meta($term_id,'text_field_id');
    echo $saved_data;

    Sources

    Et voilà ! En espérant avoir été utile ^^

    Geek au féminin ^_^