我想简化在 WordPress 中创建“自定义帖子类型”,因为通过相同的脚本并一遍又一遍地手动更改所有自定义帖子类型名称实例是乏味的。
通过创建一个包含 CPT 名称的变量并在需要的任何地方使用它来实现非常简单。这样,我所要做的就是在脚本的开头声明变量,剩下的就交给我了。
唯一的问题是,为了让它工作,我还需要在脚本中的每个函数前面加上 CPT 名称的前缀,似乎在函数名称中使用变量并不容易,甚至在 PHP 中也不推荐。
那么我该如何解决呢?
为了清楚起见,下面是一个示例:
$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:我在谷歌上搜索并“stackoverflowed”了很多关于这个但没有找到任何适合我需要并且不会生成 WordPress 错误消息的有效解决方案。
谢谢你。