如何将一些Unicode文本安全地挂钩到日历小工具中?

时间:2013-11-04 作者:Mayeenul Islam

我为WordPress日历收集了一个很好的数字替换功能:

function make_bangla_number($str)
{
    $engNumber = array(\'0\',\'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\');
    $bangNumber = array(\'০\',\'১\',\'২\',\'৩\',\'৪\',\'৫\',\'৬\',\'৭\',\'৮\',\'৯\');
    $converted = str_replace($engNumber, $bangNumber, $str);

    return $converted;
}
该函数清楚地表明,它使用英语数字,并将其替换为Bānglā数字。

但问题是,有一个类似的函数,我可以将所有公历月份替换为Bānglā脚本,但使用数字函数,我弄乱了日历小部件。因为呼叫:

add_filter( \'get_calendar\', \'make_bangla_number\' );
替换所有数字,即使在HTML中也是如此。假设HTML中的上个月链接:

<td id="prev" colspan="3">
   <a title="View posts for October 2013" href="http://localhost/wp_developer/?m=201310">
      « Oct
   </a>
</td>
正在获取。。。

<td id="prev" colspan="৩">
   <a title="View posts for অক্টোবর ২০১৩" href="http://localhost/wp_developer/?m=২০১৩১০">
      « অক্টোবর
   </a>
</td>
因此,有两个问题:

锚定路径错误,因此未设置存档URL(?m=২০১৩১০)colspan="৩")1 不等于Bānglā数字 与二进制值相比。

那么,我们如何以安全的方式继续使用这样的过滤器/挂钩呢?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

假设你是指default calendar widget, 您确实有两个选择:

极其复杂的正则表达式,或者制作自己的小部件我会选择#2,它的肉实际上是get_calendar 作用克隆该函数并根据需要更改日期。

这是假设您的语言没有合适的本地化版本的WordPress——请参阅@birgire的评论。

结束

相关推荐

缺少WordPress Apply_Filters()参数

我正在定制Woocommerce Wordpress网站。在Woocommerce产品类别中(class-wc-product.php) 这个get_price 函数应用筛选器,如下所示:function get_price() { return apply_filters(\'woocommerce_get_price\', $this->price, $this); } 在我的功能中。php我想添加一个过滤器,如下所示:add_filter(\'woocomme