【问题标题】:Removing title from wp_list_categories()从 wp_list_categories() 中删除标题
【发布时间】:2011-01-25 05:08:57
【问题描述】:

我正在尝试删除/替换 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 破解,因为这样直截了当。任何帮助表示赞赏...

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

<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>

【问题讨论】:

  • 您能否具体说明“类别元素”对于非 WP 专家的含义?
  • ... 并显示一些有问题的 HTML 代码?
  • 类别(可选)与博客文章相关联,当使用 wp_list_categories() 显示它们时,它会不断添加默认标题元素(例如,title="查看#category 下的所有帖子" 到它的锚点创建。我似乎无法删除或替换标题

标签: php wordpress function customization


【解决方案1】:

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

打开您的模板/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>

如果title="", 已被完全删除.. :)

感谢:Tim Holt & his plugin

【讨论】:

【解决方案2】:

这在旧帖子上的答案有点晚,但有一种更简单的方法,不需要插件或添加到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 ); ?>

【讨论】:

    【解决方案3】:

    有一个插件,也许这至少可以帮助查看插件代码。

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

    【讨论】:

      【解决方案4】:

      对于任何想要在没有任何函数的情况下执行此操作的人来说,这可能是您的最佳选择。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>
      

      【讨论】:

        【解决方案5】:

        默认情况下,如果有,wp_list_categories 将在标题属性中包含类别描述,如果没有描述,则“查看 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 = '';
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-13
          • 2017-10-24
          • 2013-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-20
          • 2022-01-09
          相关资源
          最近更新 更多