Wordpress投资组合过滤器不适用于西里尔字母类别名称

时间:2018-03-14 08:48:20

标签: wordpress categories cyrillic

在我的网站产品组合中,过滤器无法使用西里尔类别名称,而且非常适合 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>

1 个答案:

答案 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或等效垫片,但上述内容应该足够了。