Удаление заголовка из категорий списка wp()
Я пытаюсь удалить/заменить атрибут title в элементах категории, используемых WordPress. Я использую 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>
5 answers
Если вы не хотите использовать плагин, удалите код из плагина Удалить атрибуты заголовка вы можете увидеть основную функцию, используемую для удаления заголовков из категорий.
Откройте свой 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');
Это добавит новый фильтр, заменяющий функцию out из wp_list_categories, используемую wordpress, и заменит ее функцией выше.
В вашем примере кода
<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>
Если бы заголовок="", был полностью удален.. :)
Кредиты: Тим Холт и его плагин
Для этого есть плагин, возможно, это поможет хотя бы взглянуть на код плагина.
Http://wordpress.org/extend/plugins/remove-title-attributes/
Это немного поздний ответ на старый пост, но есть гораздо более простой способ, который не требует плагинов или добавления в 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 ); ?>
Это, вероятно, ваш лучший вариант для тех, кто хочет сделать это без каких-либо functions.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>
По умолчанию wp_list_categories будет включать описание категории в атрибут заголовка, если таковой имеется, или "Просмотреть все записи, поданные в категории ", если описания нет.
Мне не нравится, что там есть полное описание. Это то, что я использую в functions.php чтобы настроить атрибут заголовка:
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');
Если вы просто хотите полностью удалить атрибут заголовка, вы можете использовать
$search = '/ title=".+"/i';
$replace = '';