在我的网站产品组合中,过滤器无法使用西里尔类别名称,而且非常适合 latin 字母。
在我的wordpress网站,投资组合页面,当我选择显示时,我们只说三个类别,我用西里尔字母命名(Сватби,Портрети)或只是数字(2017; 2018;等),项目没有'出现。
但是当我使用拉丁字母时,一切都在显示。或者,当我单击“显示所有类别”时,也没有问题。
<?php
if( $page_title_type == '1' || $page_title_type == '2' )
{
?><h5><?php the_title();?></h5><?php
}
$portfolio_category = get_page_setting_property( 'portfolio_category', '' );
$portfolio_categories = get_categories(array(
'taxonomy' => 'project_cat',
));
if($portfolio_category == '')
{
$portfolio_filter_enabled = true;
}
else
{
$portfolio_filter_comma = strpos($portfolio_category, ',');
$portfolio_filter_enabled = $portfolio_filter_comma !== false && $portfolio_filter_comma > 0;
}
if( $portfolio_filter_enabled && count( $portfolio_categories ) > 1 )
{
?>
<div class="filter">
<i class="category-icon"></i>
<ul class="filter-ctrl">
<li class="active" data-filter="*"><i><?php esc_html_e('Show All', 'mytheme'); ?></i></li>
<?php
if($portfolio_category == '')
{
foreach($portfolio_categories as $cat)
{
?><li data-filter=".filter-cat-<?php echo esc_attr($cat->term_id); ?>"><i><?php echo esc_html($cat->name); ?></i></li><?php
}
}
else
{
$cats = explode(',', $portfolio_category);
foreach($portfolio_categories as $cat)
{
if(in_array($cat->name, $cats))
{
?><li data-filter=".filter-cat-<?php echo esc_attr($cat->term_id); ?>"><i><?php echo esc_html($cat->name); ?></i></li><?php
}
}
}
?>
</ul>
</div>
<?php
}
?>
</div>
答案 0 :(得分:0)
问题出在JS内部,以便快速轻松地修复:
var filterValue = jQuery(this).attr('data-filter').replace(/%/g, '\\%');
- &GT;
a
最终为任何角色修复此问题的正确方法是使用https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape或等效垫片,但上述内容应该足够了。