字符lt;,>&;,“and”(小于、大于、与号、双引号和单引号)在术语名称中出现。&been&. 这是通过将术语对象传递给sanitize_term() 应用多个过滤器的函数。默认情况下,WordPress应用这些过滤器:sanitize_text_field(), wp_filter_kses() 和_wp_specialchars() (参见wp-includes/default-filters.php), 最后一个函数包含<;,>&;,“还有”。
因此,您需要:
$value = "Website Development & Designing"
get_term_by(\'name\',$value,\'skills\');
或者,对于未知值:
get_term_by( \'name\', esc_attr( $value ), \'skills\');
注:使用
esc_attr(), 不
_wp_specialchars() 直接因为
_wp_specialchars() is marked as private function 而且它不适合插件或主题开发人员使用。