我想简化在WordPress中创建“自定义文章类型”的过程,因为反复手动更改所有自定义文章类型名称实例非常繁琐。通过创建一个包含CPT名称的变量并在需要时使用它,可以很容易地实现这一点。这样,我只需在脚本开头声明变量,就可以解决其余问题。唯一的问题是,为了使其工作,我还需要在脚本中的每个函数前缀CPT名称,而在PHP中在函数名中使用变量并不容易或甚至不推荐。那么我该如何解决这个问题呢?以下是一个示例,以使其更加清晰:
这段代码几乎可以标准化,只要我能够动态地重命名函数,而不必在函数前面写单词"news",而是使用"$prefix"即可。
这段代码本来很好,但却无法正常工作。
$prefix = 'news';
function news_custom_type_init()
{
global $prefix;
register_post_type($prefix, array(
'labels' => array(
'name' => $prefix,
'singular_label' => $prefix,
'add_new' => 'Add',
...
));
register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');
这段代码几乎可以标准化,只要我能够动态地重命名函数,而不必在函数前面写单词"news",而是使用"$prefix"即可。
这段代码本来很好,但却无法正常工作。
$prefix = 'news';
$functionName= $prefix."_custom_type_init";
function $functionName()
{
global $prefix;
register_post_type($prefix, array(
'labels' => array(
'name' => $prefix,
'singular_label' => $prefix,
'add_new' => 'Add',
...
));
register_taxonomy_for_object_type( 'category', $prefix );
}
add_action('init', $prefix.'_custom_type_init');
我需要手动命名函数,这有点违背了我的初衷(特别是当脚本嵌入了许多像这个函数一样的函数时)。
有什么最好的方法可以解决这个问题呢?
PS:我搜索了很多关于这个问题的谷歌和stackoverflow,但没有找到符合我的需求并且不会生成WordPress错误信息的解决方案。
谢谢。