2016-12-21 2 views
1

J'ai un blog WordPress et je veux seulement montrer tous les tags qui commencent par la lettre A. Je veux dire tous les tags répertoriés dans le site Web complet. J'ai besoin d'une liste massive de toutes les balises qui commencent par la lettre A qui sont contenues dans le blog complet.Liste WordPress Tags commençant par lettre A

Toutes les autres étiquettes (commençant par B, C etc.) ne seront pas affichées.

Le code suivant répertorie les balises qui contiennent la lettre «a», mais j'ai besoin de balises commençant par avec la lettre «a».

<ul class="index-p clearfix"> 
<h3>A</h3> 
<?php 
$tags = get_tags(array('name__like' => "a", 'order' => 'ASC')); 
foreach ((array) $tags as $tag) { ?> 
<li> 
<a href="<?php echo get_tag_link($tag->term_id) ?>"> 

<span class="info"> 
<span class="name"><?php echo $tag->name ?></span> 
</span> 
</a> 
</li> 
<?php } ?> 
</ul> 

Depuis WordPress 3.7 name__like ne correspond pas à des termes qui commencent par la chaîne plus. Je suis à la recherche d'une solution de contournement.

+0

Je ne connais pas Wordpress, mais un hack php serait de filtrer, c'est à dire 'if (strpos ($ tag-> name, 'a')! == false) {.... montre le tag .. .} ' – Sean

+0

Vous pouvez essayer d'utiliser le paramètre de recherche avec un caractère générique ('%'). Par exemple: $ tags = get_tags (array ('search' => "a%", 'order' => 'ASC')). Vous pouvez aussi essayer: $ tags = get_tags (array ('name__like' => "a%", 'order' => 'ASC')); –

Répondre

1

Vérifiez premier caractère du nom de la balise et ignorer si le premier caractère est pas celui que vous voulez comme ci-dessous:

<ul class="index-p clearfix"> 
<h3>A</h3> 
<?php 
$tags = get_tags(array('name__like' => "a", 'order' => 'ASC')); 
foreach ((array) $tags as $tag) { 
if(strtolower(substr($tag->name,0,1)) !="a"){ 
    continue; 
    }?> 
<li> 
<a href="<?php echo get_tag_link($tag->term_id) ?>"> 
<span class="info"> 
<span class="name"><?php echo $tag->name ?></span> 
</span> 
</a> 
</li> 
<?php } ?> 
</ul> 

REMARQUE: Remplacer « une » avec une lettre que vous voulez.