从slug中获取好的类别名称(删除类别的破折号)

时间:2021-09-13 作者:Johan

我在主题中有一个函数:

$category = isset($_GET[\'category\']) ? wp_unslash($_GET[\'category\']) : \'\';
问题是它输出的类别如下:

"E;测试类别;

然而,我想表明:"Test Category", 就像它保存在后端一样,没有破折号和较小的字母。

有没有办法摆脱这个鼻涕虫,改用这个好名字?我尝试了很多东西(比如get_term_by() 功能),但对我来说什么都不起作用。我想这是因为我使用了$category变量。

有人能帮我吗?

2 个回复
SO网友:breadwild

我很喜欢正则表达式:

<?php
$category = \'test-category\';
$category = preg_replace(\'/-/\', \' \', $category);
$category = ucwords($category); 
echo $category;

SO网友:Tom J Nowell

首先,通过get_term_by:

$term = get_term_by( \'slug\', \'test-category\', \'category\' );
然后从term object:

echo esc_html( $term->name );
请注意,如果找不到术语,get_term_by 将返回false 相反,请始终检查这一点。