在我的自定义帖子类型中,有一个自定义分类法,它具有常用的标题、Slug和Description字段。
我希望最终用户不理解slug的用途,在我的情况下,它需要是一个语言代码,例如en\\u GB,所以我只想将slug标签重命名为“语言代码”。
太长,读不下去了我可以重命名自定义分类法的slug标签吗?
在我的自定义帖子类型中,有一个自定义分类法,它具有常用的标题、Slug和Description字段。
我希望最终用户不理解slug的用途,在我的情况下,它需要是一个语言代码,例如en\\u GB,所以我只想将slug标签重命名为“语言代码”。
太长,读不下去了我可以重命名自定义分类法的slug标签吗?
正如SallyCJ所提到的,gettext
是你唯一的选择,因为Slug 标签是在WordPress的核心中硬编码的。
https://core.trac.wordpress.org/browser/tags/5.2/src/wp-admin/edit-tags.php#L439
这是我编写和测试的一个片段,应该对您有用,它将只在后端运行,并且只在您将看到并希望更改的两个页面上运行Slug:add_action(\'current_screen\', \'current_screen_callback\');
function current_screen_callback($screen) {
// Put some checks and balances in place to only replace where and when we need to
if(
is_object($screen) &&
($screen->base===\'edit-tags\' || $screen->base===\'term\') &&
$screen->taxonomy===\'custom_tax_slug\'){
add_filter( \'gettext\', \'change_out_slug_labels\', 99, 3 );
}
}
function change_out_slug_labels($translated_text, $untranslated_text, $domain){
if(stripos( $untranslated_text, \'slug\' )!== FALSE ){
$translated_text = str_ireplace(\'Slug\', \'Language Code\', $untranslated_text);
}
return $translated_text;
}
current_screen
是一个只支持管理的钩子,因此交换所需内容的调用只在后端调用。我接受了change_out_slug_labels()
功能输出,以便在需要时可以在前端使用它。我希望这有帮助!!!
代码用于single-product.php. 我可以在页面上列出所有产品,但我想列出所有带有slug标题的帖子。<?php $args= array( \'post_type\' => \'products\', \'order_by\' => \'date\', \'posts_per_page\' => -1, \'post__not_in\' => array( get_