类别名称中有Apostrophe时的食典功能问题

时间:2014-07-14 作者:zipzit

我在一个网站上工作,主要由类别管理。其中两个类别中有撇号。。。例如“Joe’s Place”和“Tina’s Lounge”。(实际标题已更改,以下是示例…)Slug类别为“joes place”和“tinas lounge”。

客户要求现场提供面包屑。。。不幸的是,每当类别的名称中有撇号时,面包屑调用就会失败。失败发生在调用get\\u cat\\u ID.Oh时,当面包屑失败时,整个页面都会失败。这是我的面包屑代码片段。。。

if ( is_category() )
        {
            // single_cat_title() Displays or returns the page title if a category
            // or tag archive is queried. 
            $catTitle = single_cat_title( "", false );   
            echo \'<!-- $catTitle:\'.$catTitle." -->";  // troubleshooting line... 
            $cat = get_cat_ID( $catTitle );
            echo \'<!-- $cat: \'.$cat."-->";   // troubleshooting line
            echo "<li>  ". get_category_parents_custom( $cat, TRUE, \' &raquo; \' ) ."</li>";
        }
get\\u cat\\u ID只返回0. 呃哦。。。当我仔细查看疑难解答代码时,我可以看到$catTitle返回Joe&#8217;s Place

哎哟关于撇号的具体格式,目前还不清楚。当我在codex核心中越来越深入地挖掘时,我可以看到get\\u cat\\u ID调用一个函数get_term_by() 警告“$值不是对‘name’$字段的HTML转义。如果需要,您必须自己进行转义。”我想这是我的问题。但是,“HTML转义”字符串意味着什么呢?

我试过了$catTitle2 = htmlspecialchars_decode($catTitle); 不,去那里<我试过了$catTitle2 = esc_html($catTitle); 不,去那里。在前面的两个函数中,字符串都不会有任何变化。

我试着手动将字符串“Joe’s Place”引入通话,哇,这完全奏效了。

同时,我将执行一个简单的字符串替换函数,但这看起来像是一种黑客行为。

是否有php或wordpress函数可以转换字符串&#8217; 回到一个简单的撇号?解决此问题的正确方法是什么?

更新:我偶然发现this posting: 我的快速修复程序包括此处建议的一些代码,并进行了一些小的修改:

     $catTitleCorrected = html_entity_decode(str_replace("&#8217;","\'",$catTitle)); 

2 个回复
SO网友:Bindiya Patoliya

你可以用这个。愿它对你有帮助。

ent2ncr

将命名实体转换为编号实体。

SO网友:gmazzap

因此,您的最终目标似乎是获取当前类别id以用于get_category_parents_custom 函数和您正在使用的single_cat_title 要获取当前cat名称并将其传递给get_cat_ID 获取当前类别id。

我认为你让你的生活变得更加艰难,因为你可以get_queried_object_id 获取当前类别id时is_category() 为true,或者您可以使用get_queried_object 然后使用类别ID和名称构成该对象。示例代码:

if ( is_category() ) {
  $cat = get_queried_object();
  // if you also need category name uncomment next line
  // $catTitle = $cat->name;
  echo "<li>  " . get_category_parents_custom( $cat->term_id, TRUE, \' &raquo; \' ) . "</li>";
}

结束

相关推荐

Breadcrumbs - get the author?

我有自己的函数breadcrumbs()。在其中,我调用is\\u author()来确定我是否在作者页面上。如果是真的,我想知道我在哪个作者的页面上。我尝试了\\u author(),但没有结果。我还查阅了WP codex。有人能帮忙吗?

类别名称中有Apostrophe时的食典功能问题 - 小码农CODE - 行之有效找到问题解决它

类别名称中有Apostrophe时的食典功能问题

时间:2014-07-14 作者:zipzit

我在一个网站上工作,主要由类别管理。其中两个类别中有撇号。。。例如“Joe’s Place”和“Tina’s Lounge”。(实际标题已更改,以下是示例…)Slug类别为“joes place”和“tinas lounge”。

客户要求现场提供面包屑。。。不幸的是,每当类别的名称中有撇号时,面包屑调用就会失败。失败发生在调用get\\u cat\\u ID.Oh时,当面包屑失败时,整个页面都会失败。这是我的面包屑代码片段。。。

if ( is_category() )
        {
            // single_cat_title() Displays or returns the page title if a category
            // or tag archive is queried. 
            $catTitle = single_cat_title( "", false );   
            echo \'<!-- $catTitle:\'.$catTitle." -->";  // troubleshooting line... 
            $cat = get_cat_ID( $catTitle );
            echo \'<!-- $cat: \'.$cat."-->";   // troubleshooting line
            echo "<li>  ". get_category_parents_custom( $cat, TRUE, \' &raquo; \' ) ."</li>";
        }
get\\u cat\\u ID只返回0. 呃哦。。。当我仔细查看疑难解答代码时,我可以看到$catTitle返回Joe&#8217;s Place

哎哟关于撇号的具体格式,目前还不清楚。当我在codex核心中越来越深入地挖掘时,我可以看到get\\u cat\\u ID调用一个函数get_term_by() 警告“$值不是对‘name’$字段的HTML转义。如果需要,您必须自己进行转义。”我想这是我的问题。但是,“HTML转义”字符串意味着什么呢?

我试过了$catTitle2 = htmlspecialchars_decode($catTitle); 不,去那里<我试过了$catTitle2 = esc_html($catTitle); 不,去那里。在前面的两个函数中,字符串都不会有任何变化。

我试着手动将字符串“Joe’s Place”引入通话,哇,这完全奏效了。

同时,我将执行一个简单的字符串替换函数,但这看起来像是一种黑客行为。

是否有php或wordpress函数可以转换字符串&#8217; 回到一个简单的撇号?解决此问题的正确方法是什么?

更新:我偶然发现this posting: 我的快速修复程序包括此处建议的一些代码,并进行了一些小的修改:

     $catTitleCorrected = html_entity_decode(str_replace("&#8217;","\'",$catTitle)); 

2 个回复
SO网友:Bindiya Patoliya

你可以用这个。愿它对你有帮助。

ent2ncr

将命名实体转换为编号实体。

SO网友:gmazzap

因此,您的最终目标似乎是获取当前类别id以用于get_category_parents_custom 函数和您正在使用的single_cat_title 要获取当前cat名称并将其传递给get_cat_ID 获取当前类别id。

我认为你让你的生活变得更加艰难,因为你可以get_queried_object_id 获取当前类别id时is_category() 为true,或者您可以使用get_queried_object 然后使用类别ID和名称构成该对象。示例代码:

if ( is_category() ) {
  $cat = get_queried_object();
  // if you also need category name uncomment next line
  // $catTitle = $cat->name;
  echo "<li>  " . get_category_parents_custom( $cat->term_id, TRUE, \' &raquo; \' ) . "</li>";
}

相关推荐

Breadcrumbs - get the author?

我有自己的函数breadcrumbs()。在其中,我调用is\\u author()来确定我是否在作者页面上。如果是真的,我想知道我在哪个作者的页面上。我尝试了\\u author(),但没有结果。我还查阅了WP codex。有人能帮忙吗?