Afficher seulement les 30 premiers caractères (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 10 réponses, 2 participants et a été mis à jour pour la dernière fois par kvf300, le il y a 10 années.
11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #499172
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : Dernière
    – Version de PHP/MySQL :
    – Thème utilisé :
    – Extensions en place :
    – Nom de l’hebergeur : OVH
    – Adresse du site : http://www.licencedemathematiques.com/

    Problème(s) rencontré(s) :

    J’utilise deux fonctions sur ma page d’accueil pour afficher les derniers articles ajoutés:

    <div class="derniers_accueil">
    
    <?php query_posts('showposts=5') ?>
    <ul class="liste_derniers_articles">
      <?php while (have_posts()) : the_post(); ?>
      <li><a href="<?php the_permalink() ?>“><?php the_title(); ?></a></li>
      <?php endwhile;?>
    </ul>
    </div>

    Et les articles les plus lus:

    <div class="plus_lus_accueil">
    
    <?php if (function_exists('get_most_viewed')); ?>
       <ol class="liste_articles_plus_lus">
          <?php { get_most_viewed('post','5'); }?>
       </ol>
    
    </div>

    Ma question est simple: Comment faire pour ne pas afficher tout le titre mais seulement 30 caractères par exemple.

    Merci à vous.

    #790564
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    up

    #790565
    Guy
    Participant
    Maître WordPress
    14817 contributions

    twentyeleven a une fonction addEllipsis, à mettre dans le fichier functions du thème.

     $length) ? substr($string, 0, $length) . ‘…’ : $string;
        return $ret;
    }
    ?>
    
    
    <div class="derniers_accueil">
    
    
    <ul class="liste_derniers_articles">
      
      <li><a href="”></a></li>
      
    </ul>
    </div>

    #790566
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    J’ai une erreur dans mon admin et le div ne s’affiche pas sur le site:

    Warning: Cannot modify header information – headers already sent by (output started at /homez.109/licenced/www/wp-content/themes/Curious/functions.php:92) in /homez.109/licenced/www/wp-admin/theme-editor.php on line 99

    #790567
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ce qu’il y a a mettre dans functions.php, c’est seulement la fonction addEllipsis

    function addEllipsis($string, $length = 30)
    {
    $ret = (strlen($string) > $length) ? substr($string, 0, $length) . ‘…’ : $string;
    return $ret;
    }

    le reste était un exemple d’utilisation dans le code que vous aviez fourni.

    si cela se poursuit, pouvez vous afficher ici le fichier functions.php

    #790568
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    Oui c’est bien ce que j’avais compris. Voici le fichier function.php:

     ‘Right Column’,    
            ‘before_widget’ => ‘<li id="%1$s" class="%2$s">‘,
            ‘after_widget’ => ‘</li>‘,
            ‘before_title’ => ‘<h2 class="sidebartitle">‘,
            ‘after_title’ => ‘</h2>‘,
        ));
    
    // Search 	
    	function widget_zone_out_search() {
    ?>	
    <li class="list-search">
    	  
    	</li>
    <?php
    }
    if ( function_exists('register_sidebar_widget') )
        register_sidebar_widget(__('Search'), 'widget_zone_out_search');
    	
    /* 
    Plugin Name: Recent Posts 
    Plugin URI: http://mtdewvirus.com/code/wordpress-plugins/ 
    */ 
    
    function mdv_recent_comments($no_comments = 5, $comment_lenth = 7, $before = '<li>‘, $after = ‘</li>‘, $show_pass_post = false, $comment_style = 0) {
        global $wpdb;
        $request = “SELECT ID, comment_ID, comment_content, comment_author, comment_author_url, post_title FROM $wpdb->comments LEFT JOIN $wpdb->posts ON $wpdb->posts.ID=$wpdb->comments.comment_post_ID WHERE post_status IN (‘publish’,’static’) “;
    	if(!$show_pass_post) $request .= “AND post_password =” “;
    	$request .= “AND comment_approved = ‘1’ ORDER BY comment_ID DESC LIMIT $no_comments”;
    	$comments = $wpdb->get_results($request);
        $output = ”;
    	if ($comments) {
    		foreach ($comments as $comment) {
    			$comment_author = stripslashes($comment->comment_author);
    			if ($comment_author == “”)
    				$comment_author = “anonymous”; 
    			$comment_content = strip_tags($comment->comment_content);
    			$comment_content = stripslashes($comment_content);
    			$words=split(” “,$comment_content); 
    			$comment_excerpt = join(” “,array_slice($words,0,$comment_lenth));
    			$permalink = get_permalink($comment->ID).”#comment-“.$comment->comment_ID;
    
    			if ($comment_style == 1) {
    				$post_title = stripslashes($comment->post_title);
    				
    				$url = $comment->comment_author_url;
    
    				if (empty($url))
    					$output .= $before . $comment_author . ‘ on ‘ . $post_title . ‘.’ . $after;
    				else
    					$output .= $before . “<a href='$url' rel='external'>$comment_author</a>” . ‘ on ‘ . $post_title . ‘.’ . $after;
    			}
    			else {
    				$output .= $before . ” . $comment_author . ‘:  <a href="' . $permalink;
    				$output .= '" title="View the entire comment by ' . $comment_author.'">‘ . $comment_excerpt.’</a>‘ . $after;
    			}
    		}
    		$output = convert_smilies($output);
    	} else {
    		$output .= $before . “None found” . $after;
    	}
        echo $output;
    }
    
    function remove_more_jump_link($link) {
    
    	$offset = strpos($link, ‘#more-‘);
    
    	if ($offset) {
    
    		$end = strpos($link, ‘”‘,$offset);
    
    	}
    
    	if ($end) {
    
    		$link = substr_replace($link, ”, $offset, $end-$offset);
    
    	}
    
    	return $link;
    
    }
    
    
    
    add_filter(‘the_content_more_link’, ‘remove_more_jump_link’);
    ?>
    
     $length) ? substr($string, 0, $length) . ‘…’ : $string;
        return $ret;
    }
    ?>

    #790569
    Guy
    Participant
    Maître WordPress
    14817 contributions

    j’enlèverai à la fin du fichier

    add_filter(‘the_content_more_link’, ‘remove_more_jump_link’);
    ?>

    <?php
    function addEllipsis($string, $length = 30)

    et le remplacerai par

    add_filter(‘the_content_more_link’, ‘remove_more_jump_link’);

    function addEllipsis($string, $length = 30)

    vous pouvez aussi vérifier qu’il n’y pas de lignes blanches en fin de fichier après le ?>

    Dans le fichier il y a :

    /*
    Plugin Name: Recent Posts
    Plugin URI: http://mtdewvirus.com/code/wordpress-plugins/
    */

    je ne pense pas que cela soit nécessaire, si vous voulez indiquer que la fonction vient de ce plugin, modifiez les débuts de façon à ce que cela ne ressemble pas à une entête de plugin.
    /*
    extension Name: Recent Posts
    extension URI: http://mtdewvirus.com/code/wordpress-plugins/
    */

    #790570
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    Super c’est génial tout fonctionne, je te remercie pour avoir pris le temps de résoudre mon problème.

    #790571
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    Merci mais du coup comment faire avec ceci:

    <div class="plus_lus_accueil">
    
    
       <ol class="liste_articles_plus_lus">
          
       </ol>
    
    </div>

    ??

    #790572
    Guy
    Participant
    Maître WordPress
    14817 contributions

    il faut trouver la fonction get_most_viewed (certainement dans le plugin) et applique la fonction addEllipsis. Faites un if (function_exists(‘addEllipsis’))
    $titre = addEllipsis(….
    else
    $titre = ….

    pour que si vous changez de thème et que la fonction n’existe pas, cela ne provoque pas une erreur

    #790573
    kvf300
    Participant
    Chevalier WordPress
    106 contributions

    Merci pour l’idée. Du coup je suis allé dans le fichier du plugin et en fait il le gère déjà … Donc ceci:

    get_most_viewed(‘post’,’5′,30)

    me donne ce que je veux.

    Merci, ça m’a permis d’aller voir dans le fichier.

11 sujets de 1 à 11 (sur un total de 11)
  • Vous devez être connecté pour répondre à ce sujet.