Bay*_*ock 9 php wordpress function dynamic
我想在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');
Run Code Online (Sandbox Code Playgroud)
这几乎是好的,如果我只能动态重命名函数,以便不必在它前面写"新闻"这个词,而是使用"$ 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');
Run Code Online (Sandbox Code Playgroud)
必须手动命名函数有点击败我尝试的最初目的(特别是当脚本嵌入了这样的几十个函数时).
最好的方法是什么?
PS:我谷歌搜索和"stackoverflowed"很多关于此但没有找到任何适合我的需要的工作解决方案,并没有生成WordPress错误消息.
谢谢.
很简单,这是一个类似剪切形式的项目:
$function = $prefix . '_custom_type_init';
if(function_exists($function)) {
$function();
}
Run Code Online (Sandbox Code Playgroud)
这是一个旧线程,但只是使用匿名函数:
add_action('init', function() use($args) {
//...
});
Run Code Online (Sandbox Code Playgroud)
然后就没有必要声明这么多的功能了.