从wp_list_categories中删除标题()

时间:2010-03-08 22:57:34

标签: php wordpress function customization

我正在尝试删除/替换WordPress使用的类别元素的title属性。我正在使用WordPress 2.9.1,代码如下:

<div id="categories">
    <h3>Manufacturers</h3>
        <ul>
            <?php str_replace("title=\"View all posts filed under ","",wp_list_categories('use_desc_for_title=0&exclude=1,2,3,4,5&title_li=&hierarchical=1')); ?>
        </ul>
</div>

从我所读到的这个方法过去常用于旧版本(我从未尝试过)。我真的不想破解WordPress的内涵,或者不得不使用JavaScript hack,这是非常直接的。任何帮助表示赞赏...

更新 下面是从上面的代码创建的...

<div id="categories">
<h3>Manufacturers</h3>
<ul>
<li class="cat-item cat-item-7"><a href="http://localhost/crosstrainers/?cat=7" title="View all posts filed under Featured">Featured</a>
</li>
</ul>
</div>

5 个答案:

答案 0 :(得分:9)

如果您不想使用该插件,从Remove Title Attributes plugin剥离代码,您可以看到所使用的主要功能,以便从类别中删除标题。

打开你的template / function.php文件并插入以下内容......

function wp_list_categories_remove_title_attributes($output) {
    $output = preg_replace('` title="(.+)"`', '', $output);
    return $output;
}
add_filter('wp_list_categories', 'wp_list_categories_remove_title_attributes');

这将添加一个新的过滤器,替换wordpress使用的wp_list_categories函数,并将其替换为上面的函数。

代码示例中的

<div id="categories">
  <h3>Manufacturers</h3>
    <ul>
      <?php wp_list_categories(); ?>
    </ul>
</div>

输出为

 <div id="categories">
      <h3>Manufacturers</h3>
        <ul>
          <li class="cat-item cat-item-7"><a href="http://localhost/crosstrainers/?cat=7">Featured</a></li>
        </ul>
    </div>

标题=“”,已完全剥离.. :)

信用到:Tim Holt & his plugin

答案 1 :(得分:4)

对于旧帖子,这是一个迟到的答案,但有一个更简单的方法,不需要插件或添加到functions.php

<?php wp_list_categories('title_li='); ?>

或者,如果与输出的其他自定义一起使用:

<?php $args = array (
    'title_li'           => __( '' ),
    'hide_empty'         => 0,
    'show_count'         => 1,
    'use_desc_for_title' => 0,
    'child_of'           => 1
);
wp_list_categories( $args ); ?>

答案 2 :(得分:3)

有一个插件,这可能有助于至少查看插件代码。

http://wordpress.org/extend/plugins/remove-title-attributes/

答案 3 :(得分:1)

对于任何想要在没有任何function.php工作的情况下执行此操作的人来说,这可能是您的最佳选择

只需将其添加到您的模板中即可。

                <ul class="nav">
                    <?php wp_list_categories( array(
                        'orderby' => 'name',
                        'taxonomy' => 'product_cat',
                        'depth' => 1,
                        'title_li' => '',
                        'hide_title_if_empty' => true,
                        'use_desc_for_title'  => 0,
                        'include' => array( 28, 27, 8, 29, 43, 31 )
                    ) ); ?>
                </ul>

答案 4 :(得分:0)

默认情况下,wp_list_categories将包含title属性中的Category描述(如果有),或者“如果没有描述,则查看 category 下提交的所有帖子”。

我不喜欢在那里有完整的描述。这就是我在functions.php中使用的自定义title属性:

function custom_categories_title($output) {
    $search = '/title=".+"(.*>)(.+)</i';
    $replace = "title=\"View all articles filed under $2\"$1$2<";
    return preg_replace($search, $replace, $output);
}
add_filter('wp_list_categories', 'custom_categories_title');

如果您只是想完全删除title属性,可以使用

    $search = '/ title=".+"/i';
    $replace = '';