创建自定义帖子类型+分类+元数据的自定义管理页面

时间:2012-04-15 作者:Andrea Sciamanna

我正在编写一个插件,它依赖于自定义的帖子类型、新的分类法和很少的自定义字段。

所有这些数据都是私有的(不可查询或搜索)。

我想为用户提供一个管理页面,以更加用户友好的方式添加和编辑这些数据。

例如,自定义帖子类型将只有一个标题和摘录字段、一个分类法和自定义字段。

我知道如何向自定义帖子类型添加元框,但这对我来说还不够。

我想创建一个完全自定义的html界面,该界面将负责添加/保存/删除自定义帖子类型,并处理分类法和元。

只是要明确一点,我已经知道如何编写一个普通的插件并处理插件的选项。

我不知道如何使用此插件,我可以:

在Wordpress管理菜单中添加一个新菜单项在这个菜单项中,使用自定义界面处理,自定义帖子类型有一些方法可以帮助我实现这一点吗?

3 个回复
最合适的回答,由SO网友:Wyck 整理而成

您需要开始阅读设置和选项API,然后将您的CPT和分类法引入其中。

从这里开始:

SO网友:AlanP

这是如何做到的:

add_action(\'admin_menu\' , \'add_to_cpt_menu\'); 

function add_to_cpt_menu() {
    add_submenu_page(\'edit.php?post_type=name_of_post_type\', \'Custom Post Type Admin\', \'Custom Settings\', \'edit_posts\', basename(__FILE__), \'cpt_menu_function\');
}   

SO网友:Reinaldo Novoa

添加菜单和子菜单,如:

add_action(\'admin_menu\', \'custom_plugin_menu\');
function custom_plugin_menu() {
    $page_title = \'Parent Menu Title\';
    $menu_title = \'Parent Menu Title\';
    $capability = \'manage_options\';
    $menu_slug = \'parent_menu_slug\';
    $function = \'whatever_for_main_page_function\';
    $icon_url = \'dashicons-admin-generic\';
    $position = 4;
    add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position);

    $parent_slug = \'parent_menu_slug\';
    $page_title = \'Submenu Page Title\';
    $menu_title = \'Submenu Page Title\';
    $capability = \'manage_options\';
    $menu_slug = \'edit-tags.php?taxonomy=your_taxonomy_name&post_type=custom_post_type_name\';
    $function = null;
    $position = null;
    add_submenu_page($parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function, $position);
}
最后:

add_filter(\'parent_file\', \'menu_highlight\');    
function menu_highlight($parent_file) {
    global $plugin_page, $submenu_file, $post_type, $taxonomy;
    if (\'custom_post_type_name\' == $post_type) {
        if ($taxonomy == \'your_taxonomy_name\') {
            $plugin_page = \'edit-tags.php?taxonomy= your_taxonomy_name&post_type= custom_post_type_name\'; // the submenu slug 
            $submenu_file = \'edit-tags.php?taxonomy= your_taxonomy_name&post_type= custom_post_type_name\';    // the submenu slug
        }
    } 
    return $parent_file;
}
希望我把这些都写对了。在分类检查中嵌套任何其他if,并为其他帖子类型添加相同的if。

结束

相关推荐