8791 sujets

Développement web côté serveur, CMS

Bonjour,
Je souhaiterais limiter l'affichage nombre de caractères du lien <?php the_title(); ?>.

Exemple au lien d'avoir :
Accessoire de moto pour moto de grande taille
Avoir :
Accessoire de moto ...

VOici mon code. Comment puis je faire, y a t-il une fonction en php ?

merci par avance

<li><span ><a href="<?php  echo $data['url']; ?>" target="_blank" <?php if($nofollow =="yes"){ ?>rel="nofollow"<?php } ?>><?php the_title(); ?></a></span></li>
tiens, une petite fonction vite faite.


function cutString($string, $lenght = 20)
{
	    $end = "...";
        $extrait = substr($string,0,$lenght);
        $extrait = substr($string,0,strrpos($extrait,' ')).$end;
        return $extrait;
}

$tachaine = "Accessoire de moto pour moto de grande taille.";

echo cutString($tachaine);



ça te donnera : Accessoire de moto...
Modifié par xirt (24 Feb 2011 - 14:35)
Yes, ca marche nikel.

Par contre, je m'y connais pas trop en php.
J'essaie ca $tachaine = "<?php the_title(); ?>";
et ca marche pas, je pense que je ne dois pas avoir le droit de faire ca en php. Le titre est dynamique.
COmment puis je faire ?

Merci pour l'aide !
Modifié par dreadstock (24 Feb 2011 - 15:24)
plutôt comme ça :
<?php $tachaine = the_title() ;
echo cutString($tachaine);
?>

mais ça c'est plus court :

<?php echo cutString(the_title()); ?>
Voila ce que j'ai fait, ca marche, il m'affiche le lien, les 3 pointillés, mais il ne coupe plus le lien à partir de 13 de large. il me met tout le lien. Bizarre

<div class="voir-site">
<a href="<?php echo $data['url']; ?>" target="_blank" <?php if($nofollow =="yes"){ ?>rel="nofollow"<?php } ?>><?php
function cutString($string, $lenght = 13)
{
$end = "...";
$extrait = substr($string,0,$lenght);
$extrait = substr($string,0,strrpos($extrait,' ')).$end;
return $extrait;
}

$tachaine = the_title() ;

echo cutString($tachaine);

?>
</a>
</div>

Pour info, le Title est une variable wordpress.
Modifié par dreadstock (24 Feb 2011 - 16:06)
Ca réagit bizarrement, car certains titre n'apparaissent pas entièrement avec 20 caractères. Mais sinon ca a l'air de fonctionner merci !!
C'est normal car si le mot n'as pas de &nbsp; à la fin la fonction coupera le mot avant jusqu'à trouver donc à remplacer:
par:
function cutString($string, $lenght)
{
$end = "...";

$extrait = substr($string,0,$lenght);
if($extrait!=$string){$extrait = substr($string,0,strrpos($extrait,' ')).$end; }
else{$extrait .= $end; }

echo $extrait;
}