是否删除wp_list_ategories()中的换行符?

时间:2010-12-01 作者:Zach Smith

我试图输出每一篇文章的类别列表。我正在使用以下代码,

<?php wp_list_categories(\'child_of=270&style=none\'); ?>

(字符串)样式以显示类别列表。列表值将类别显示为列表项,而无生成特殊的显示方法(列表项由<br> 标签)。

我该如何删除愚蠢的<br /> 每次输出后?

令人沮丧的是

<?php the_category(\', \'); ?>

将输出不带换行符的链接。。。

任何帮助都将不胜感激。

3 个回复
最合适的回答,由SO网友:PNMG 整理而成

我通过查看Wordpress Codex. 诀窍是关闭wp\\u list\\u类别的自动回显,然后使用str\\u replace()。我的示例如下:

<?php $variable = wp_list_categories(\'child_of=270&style=none&echo=0\'); ?>
<?php $variable = str_replace(\'<br />\', \'\', $variable); ?>
<?php echo $variable; ?>
查询中唯一真正的变化是包含了“echo=0”,这将在变量中返回信息,而不仅仅是显示信息。

真正的工作是由str\\u replace()完成的,它查找<br /> 标记并将其从字符串中删除。然后只需回显更新后的字符串,不再中断!

SO网友:Dr. Benway

感谢上面的回答,我找到了一个解决方案,它允许对wp\\U list\\U类别的输出进行更多的定制。我用它来显示分类法中的所有术语。

   <?php
        $args = array(
          \'taxonomy\'     => \'place\',
          \'orderby\'      => \'name\',
          \'style\'        => \'list\',
          \'show_count\'   => 0,
          \'pad_counts\'   => 0,
          \'hierarchical\' => 1,
          \'title_li\'     => \'\',
          \'exclude\'      => \'28\',
          \'echo\'         => \'0\'

        );
与上面需要“style”=>“none”的示例相反,我使用的是“style”=>“list”,输出无序列表<li><ul> 标签,但无<br /> 标签。

然后是PHP命令strip_tags 选择性地剥离所有html标记。这当然也适用于剥离<br /> 使用“style”=>“none”时标记。

    <?php $variable = wp_list_categories($args); ?>
    <?php $variable = strip_tags( $variable, \'<a>\' ); ?>
    <?php echo $variable; ?>
中的第二个参数strip_tags 是允许的标记,即保留在代码中的标记。所以它保持了<a> 标签保留所有链接,宾果!

例如,现在的豪华版允许以不同于其父母的方式设置子术语:

    <?php $variable = wp_list_categories($args); ?>
    <?php $variable = strip_tags( $variable, \'<a><ul>\' ); ?>
    <?php $variable = str_replace(\'ul\', \'span\', $variable); ?>
    <?php echo $variable; ?>
首先,保持<a> 标签和<ul> 始终具有类“children”的标记。然后将“ul”替换为“span”,标签将显示<span class="children">. 现在,所有列表标记都消失了,您可以自由地为类“children”添加CSS样式。

SO网友:xodobe

使链接对齐的最简单方法是使用li元素输出,因此不要将样式设置为“无”。

然后您可以只设置显示:inline;在容器中的“li”元素上。

那样更干净

结束

相关推荐