WordPress – Comment mettre une limitation sur la taille des extraits

Dans WordPress, il est parfois utile d’avoir une taille maximale pour les extraits de vos articles.
Pour cela, il suffit d’ajouter ce morceau de code dans /wp-content/themes/montheme/functions.php :

add_filter('excerpt_length', 'my_excerpt_length');
function my_excerpt_length($length) {
    return 30; 
}

Dans cet exemple, les 30 premiers mots seront affichés.

Pour plus d’infos sur la fonction excerpt de WordPress: the_excerpt

3 réflexions au sujet de « WordPress – Comment mettre une limitation sur la taille des extraits »

  1. Bonjour, est-il possible de donner plusieurs tailles à l’extrait?
    Sur ma page d’accueil, j’ai plusieurs articles. Je souhaiterais que le premier ai 50 caractères dans le résumé et que tous les autres n’en ai que 20.

    • Bonjour,
      vous pouvez ajouter une seconde fonction dans functions.php :
      function my_excerpt_length2($length) {
      return 20;
      }

      puis dans le fichier index.php de votre thème, ajoutez à l’intérieur de la boucle « while ( have_posts() ) : the_post(); »:

      < ?php if(!isset($i)){ $i = 0; }elseif($i == 1){ add_filter('excerpt_length', 'my_excerpt_length2'); } $i++; ?>

  2. Bonjour,

    Merci pour ce tuto.
    Petite question : si je définis une taille maxi de 30 mots et que mon article fait moins de 30 mots (exemple article avec des images), le bouton « lire la suite » n’apparait pas. Il y a t-il un moyen pour définir :
    – soit un nombre de mot minimal et maximal
    – soit de laisser en permanence le bouton « lire la suite » même si l’extrait fait moins de 30 mots.

    Merci

    Bonne journée

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Une réflexion au sujet de « Équivalent de la fonction print_r en Javascript »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment créer un écouteur d’évènements pour JW Player

Ajouter un eventListener sur le lecteur JW Player permet de récupérer un tas d’infos sur le lecteur.
Par exemple il est possible d’ajouter un écouteur pour récupérer l’état de la vidéo (lecture, en pause, etc), la position de lecture, les changements de volume …

Voici comment déclarer un listener:

//pour ajouter un écouteur sur le temps et l'état de la vidéo
player.addModelListener("TIME", "timeListener");
player.addModelListener("STATE","stateListener");
//pour ajouter un écouteur sur les changements de volume on utilise une méthode différente
player.addControllerListener("VOLUME", "volumeListener");

Il reste maintenant à traiter ces informations, exemple avec le stateListener:

function stateListener(obj) {
  //affiche une alerte lorsque l'état de la vidéo est "COMPLETED"
  if(obj.newstate == "COMPLETED")
  {
    alert('COMPLETED');
  }
}

Pour info, les autres états sont: BUFFERING PLAYING PAUSED IDLE et vous pouvez aussi récupérer l’ancien état en affichant obj.oldstate .

Pour le listener « timeListener » utilisez obj.position pour récupérer la position. Exemple:

function timeListener(obj) {
  alert(obj.position);
}

Enfin pour récupérer le volume:

function volumeListener(obj)
{
  alert(obj.percentage);
}

Bon courage et à bientôt!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

file_get_contents : gestion des erreurs

Je sais pas si vous avez déjà essayé d’entourer la fonction file_get_contents($url) avec un try catch pour gérer les erreurs si l’url est incorrecte.
Moi j’ai essayé et ca ne marche pas..
La petite astuce pour empêcher d’afficher les erreurs/warnings éventuels c’est de rajouter un arobase devant la fonction:

<?php
  $content = @file_get_contents($url);
  //on test ensuite la valeur de $content
  if ($content== false) { 
   //Gestion des erreurs
  }
?>

De cette manière, les erreurs/warnings ne sont pas affichés à l’écran de l’utilisateur.

Une réflexion au sujet de « file_get_contents : gestion des erreurs »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Drupal – Comment récupérer les données d’un webform après soumission

Webform est un module Drupal très performant et complet qui permet de créer des formulaires. Le seul hic c’est que la landing page, la page de remerciements qui est affichée après la soumission d’un formulaire, n’est pas très configurable et ne permet pas d’afficher les données du formulaire fraîchement soumis.

Pour récupérer ces données et les afficher il faut modifier le fichier normalement situé dans /modules/webform/templates/webform-confirmation.tpl.php .

Dans cette page, les variables $node et $sid sont accessibles, on va les utiliser pour récupérer les données du formulaire:

<?php

include_once(drupal_get_path('module', 'webform') .'/includes/webform.submissions.inc');//ne pas oublier cette ligne.

//on utilise $node->nid (l'id du formulaire) et $sid (l'id de la soumission) pour récupérer les données.
$submission = webform_get_submission($node->nid, $sid);

//on boucle sur les différents champs du formulaire.
//(vous pouvez aussi faire un print_r($submission->data) pour identifier les différents champs que vous voulez récupérer.
foreach($submission->data as $data)
{
  echo $data['value'][0];
}

?>

5 réflexions au sujet de « Drupal – Comment récupérer les données d’un webform après soumission »

  1. Bonjour,

    Merci, pour cette astuce mais je voudrais pouvoir recuperer pour l’afficher l’id de la soumission mais pas l’id du formulaire.
    quelle page je peux modifier?
    j’ai testé token mais je ne trouve pas celui qu’il faut ?

    Merci,

    gaël

    • Gaël, je ne fais que reprendre le texte contenu dans l’astuce :
      //on utilise $node->nid (l’id du formulaire) et $sid (l’id de la soumission) pour récupérer les données.
      $submission = webform_get_submission($node->nid, $sid);

      Si tu regarde d’un peu plus près tu pourras y lire le commentaire : $sid (l’id de la soumission) pour récupérer les données. Je pense que cela répond grandement à ta question 😀

      Les gars, il serait bien de prendre le temps de regarder ce que l’auteur du code (qui s’est cassé la tête pour vous pondre une solution) vous affiche dans son code. En principe on comme par apprendre à marcher avant de vouloir courir … alors lisez avant de poster des questions !!!!!

  2. J’utilise des Webforms mais je n’arrive pas à trouver le moyen de générer des csv à chaque soumission correspondant au formulaire pour les envoyer dans le SI. Des pièces jointes sont également utilisées.
    Faire une fonction utilisant webform_results_export() est surement la solution ?

  3. Merci, c’est parfait. Pour ma part, ne voulant pas toucher au tpl du module, je l’ai fait sur un tpl d’une page vue de mon thème, puis une redirection en fin de formulaire en faisant passer en GET le $nid et $sid (tokens).
    Je n’ai pas eu besoin de la boucle foreach, j’ai tout visé avec $submission->data[‘value][0] .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *