我有一个父wordpress主题, 它使用自定义帖子类型”
投资组合”
, 但我想将其更改为”
属性”
。我想更改所有上下文元素以显示”
属性”
, 例如”
显示属性”
, “
添加新属性”
, “
删除属性”
等。我知道可以通过更新父主题来做到这一点, 但是如果可以避免, 我宁愿不要。
我找到了这个线程:https://wordpress.stackexchange.com/questions/19240/can-i-change-a-custom-post-type-label-from-a-child-theme
不幸的是, 我对PHP的了解还不足以编写自己的函数并进行更改。有人可以帮我这个忙吗?我有点卡住。
我觉得这对于php开发人员来说很简单。我只是不知道该怎么做。
#1要重命名帖子类型标签, 我们需要操纵全局$ wp_post_types。请注意, 帖子类型是投资组合, 标签只是伪文本。
add_action( 'init', 'object_label_so_16097216', 0 );
function object_label_so_16097216()
{
global $wp_post_types;
$labels = &
$wp_post_types['portfolio']->
labels;
// <
-- adjust CPT$labels->
name = 'name';
// <
-- adjust from here on
$labels->
singular_name = 'singular_name';
$labels->
add_new= 'add_new';
$labels->
add_new_item = 'add_new';
$labels->
edit_item = 'edit_item';
$labels->
new_item = 'name';
$labels->
view_item = 'view_item';
$labels->
search_items = 'search_items';
$labels->
not_found = 'not_found';
$labels->
not_found_in_trash = 'not_found_in_trash';
}
之后, 我们仍然需要更改菜单项标签。在这里, 我正在使用辅助功能来获取CPT菜单项的确切位置。标签再次是伪文本。
add_action( 'admin_menu', 'menu_label_so_16097216' , 0 );
function menu_label_so_16097216()
{
global $menu, $submenu;
$cpt_link = 'edit.php?post_type=portfolio';
// <
-- adjust CPT
$position = b5f_recursive_array_search( $cpt_link, $menu );
$menu[$position][0] = 'name';
// <
-- adjust from here on
$submenu[$cpt_link][5][0] = 'name';
$submenu[$cpt_link][10][0] = 'add_new';
}function b5f_recursive_array_search( $needle, $haystack )
{
foreach( $haystack as $key =>
$value )
{
$current_key = $key;
if(
$needle === $value
OR (
is_array( $value )
&
&
b5f_recursive_array_search( $needle, $value ) !== false
)
)
{
return $current_key;
}
}
return false;
}
只需将所有这些代码放入孩子的functions.php中, 调整CPT和标签, 就可以了。
基于此WordPress答案。
#2在回答Jeremy Miller的回答时, 你不必循环通过管理菜单即可更改标签。标签的完整列表是实际的:
'name'
'singular_name'
'menu_name'
'name_admin_bar'
'all_items'
'add_new'
'add_new_item'
'edit_item'
'new_item'
'view_item'
'search_items'
'not_found'
'not_found_in_trash'
'parent_item_colon'
只需看看https://codex.wordpress.org/Function_Reference/register_post_type#Arguments
【通过子主题更改自定义帖子类型的标签】由于你可以指定’ menu_name’ , 因此没有必要添加额外的钩子并循环遍历Jeremy指定的菜单项。
推荐阅读
- 更改WordPress管理区域中的菜单项标签()
- 论异步编程的正确姿势(十个接口的活现在只需要一个接口就能搞定!)
- #yyds干货盘点# springboot使用@Async实现异步调用
- 图解MongoDB集群部署原理
- MongoDB学习笔记MongoDB索引那点事
- 大数据SQL优化之数据倾斜解决案例全集
- 如何保证缓存与数据库双写时的数据一致性()
- Java 16 中新增的 Stream 接口的一些思考
- vmware15 虚拟机的三种网络设置