我正在尝试使用for循环在插件中创建多个自定义帖子类型。插件选项页面允许用户设置自定义帖子类型的数量以及自定义帖子类型的单数和复数名称。
当我运行下面的代码时,wordpress只注册最后一个自定义帖子类型。下面是我使用的代码:
<?php
if($options_foo[\'num_post_types\'] > 0 ) {
for($i =1; $i <= $options_foo[\'num_post_types\']; $i++) {
global $options_foo;
$singular = $options_foo[\'post_type_names\'][$i][\'singular\'];
$plural = $options_foo[\'post_type_names\'][$i][\'plural\'];
add_action(\'init\', function(){
global $singular;
global $plural;
$labels = array(
\'name\' => $plural,
\'singular_name\' => $singular,
\'add_new\' => "New $singular",
\'add_new_item\' => "New $singular",
\'edit_item\' => "Edit $singular",
\'new_item\' => "New $singular",
\'view_item\' => "View $singular",
\'view_items\' => "View $plural",
\'search_items\' => "Search $plural",
"not_found" => "No $plural Found",
"not_found_in_trash" => "No $plural Found in Trash",
\'all_items\' => "All $plural",
\'attributes\' => "$singular Attributes",
\'insert_into_item\' => "Insert to $singular",
\'uploaded_to_this_item\' => "Uploaded to this $singular"
);
$supports = array(\'title\', \'thumbnail\');
$args = array(
\'labels\' => $labels,
\'public\' => true,
\'exclude_from_search\' => true,
\'publicly_queryable\' => true,
\'show_in_nav_menus\' => false,
\'show_in_admin_bar\' => false,
\'menu_position\' => 5,
\'menu_icon\' => \'dashicons-admin-home\',
\'supports\' => $supports,
\'can_export\' => \'true\'
);
register_post_type($singular, $args);
});
}//end for
}//end if