Wordpress:如何只显示不包含数字的标签?

时间:2014-08-29 14:47:06

标签: php string wordpress tags remove-if

我需要一个解决方案,这使我能够在wordpress页面上的列表下方显示不包含数字的标签。

这是我的代码:

<?php

        $tags_html = '';
            foreach($tags as $single_tag) 
             {

$count++;
if (1 == $count)
 {
  $tags_html .= '<a href="'.get_term_link($single_tag, 'spot_tags').'">'.$single_tag->name.'</a>, ';
}
                //// ADDS TO OUR MARKUP

            }
            //// TRIMS LAST COME
            echo rtrim($tags_html, ', ');

        ?>
    </span> 



    <?php }
    ?>

属于包含号码的帖子/列表的所有标签都不应该显示,不包含号码的标签可以显示在列表下方。

任何想法?

2 个答案:

答案 0 :(得分:0)

除非您发布$single_tag,否则我无法知道var_dump()的确切结构,但这里是您需要阻止显示的if代码带有数字内容的标签:

if(!preg_match('/\d/',$single_tag))
{
    $tags_html .= '<a href="'.get_term_link($single_tag, 'spot_tags').'">'.$single_tag->name.'</a>, ';
}

它使用\d regular expression escape sequence来检查字符串是否包含数字。

答案 1 :(得分:0)

如果您的标签是字符串,则需要这两行(构建数组)

$string = '34hj, wer, wer35, rwer, 5345, 5dgg45, sdfa';
$tags = explode(',', $string);

否则,如果您的代码已经在数组中,如下所示,则您不需要上述

$tags = array('34hj', 'wer', 'wer35', 'rwer', '5345', '5dgg45', 'sdfa');

最后,您需要此代码段,该代码段将排除包含任何数字的代码。

foreach($tags as $tag) {
    if(preg_match('/^[^\d]+$/', $tag));
    echo trim($tag) . "\n";
}

Working demo