Appearance > Menus

时间:2014-11-08 作者:dellboy

我已经添加了自定义WordPress管理菜单和页面,但是,我希望它出现在“外观>菜单”部分,以便用户可以将其添加到其网站的菜单结构中。

请让我知道如何做到这一点。

以下是我在管理页面上添加的自定义菜单示例:enter image description here

现在,我想在管理部分的外观>菜单中添加这些自定义页面:enter image description here

如果有人能帮忙,我将不胜感激。

幸亏damienoneill2001, 我可以在外观>菜单中添加分类项,但是,如何在示例中的Generes/Writer中添加内容?enter image description here

这就是我添加自定义管理菜单的方式,我希望它们中的每一个(产品、促销、产品类别)都出现在同一组“Online Shop”的外观>菜单页面上。enter image description here

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

使用add_menu_pageadd_submenu_page 通常用于向仪表板添加页面以达到特定目的,例如访问插件设置的选项页面。但是,如果您的目的是向自定义帖子类型(CPT)添加/编辑帖子/标签/类别,那么使用它们是不必要的。当CPT正确注册并具有相应的分类法时,仪表板将根据注册CPT/tax时在$args中设置的条件,默认情况下在侧栏中显示这些菜单选项。

下面是创建名为“store\\u product”的自定义帖子类型的代码,该类型使用了名为“product\\u category”的关联分类法的分层组织结构。请注意,层次分类法类似于类别-组织为树,具有父/子/兄弟分类法,而非层次分类法使用类似于标记的结构。您需要将屏幕截图中显示的所有当前代码替换为以下代码。

(为了将来的参考,提供代码的首选方法是将其作为代码示例,而不是图像-这使其他人更容易帮助您,顺便说一下,也会增加您获得帮助的机会:)

/*
   Setup Custom Post Type "store_product"
   ========================================================================== */

function dm_create_online_store_post_type() {
    $labels = array(
        \'name\'                => \'Products\',
        \'singular_name\'       => \'Product\',
        \'menu_name\'           => \'Online Store\',
        \'parent_item_colon\'   => \'Parent Product:\',
        \'all_items\'           => \'All Products\',
        \'view_item\'           => \'View Product\',
        \'add_new_item\'        => \'Add New Product\',
        \'add_new\'             => \'Add New\',
        \'edit_item\'           => \'Edit Product\',
        \'update_item\'         => \'Update Product\',
        \'search_items\'        => \'Search Products\',
        \'not_found\'           => \'Not found\',
        \'not_found_in_trash\'  => \'Not found in Trash\',
    );
    $rewrite = array(
        \'slug\'                => \'product\', // http://your-domain.com/product/product-name/
        \'with_front\'          => true,
        \'pages\'               => true, // Allow pagination
        \'feeds\'               => true,
    );
    $args = array(
        \'label\'               => \'store_product\',
        \'description\'         => \'Online Store\',
        \'labels\'              => $labels, // This just pulls from the previous array of labels
        \'supports\'            => array( \'title\', \'editor\', \'thumbnail\', ), // Fields available on the add/edit screen
        \'taxonomies\'          => array( \'product_category\' ), // Referencing the taxonomy, created in next section, to replace the default categories
        \'hierarchical\'        => true, // If true, structure would be like pages. If false, it\'s like posts.
        \'public\'              => true,
        \'show_ui\'             => true,
        \'show_in_menu\'        => true, // This tells it to show up in your admin menu
        \'show_in_nav_menus\'   => true,
        \'show_in_admin_bar\'   => true,
        \'menu_position\'       => 5, // Position in admin menu
        \'menu_icon\'           => \'http://\', // Change this to the location of your icon
        \'can_export\'          => true,
        \'has_archive\'         => true,
        \'exclude_from_search\' => false,
        \'publicly_queryable\'  => true,
        \'rewrite\'             => $rewrite,
        \'capability_type\'     => \'post\',
    );
    register_post_type( \'store_product\', $args ); // Now that everything is setup, register it.
}
add_action( \'init\', \'dm_create_online_store_post_type\', 0 ); // Necessary to actually run the above function


/*
   Setup Custom Taxonomy "product_category" for use with above post type
   ========================================================================== */

function dm_create_online_store_product_categories() {
    $labels = array(
        \'name\'                       => \'Product Categories\',
        \'singular_name\'              => \'Product Category\',
        \'menu_name\'                  => \'Product Categories\',
        \'all_items\'                  => \'All Categories\',
        \'parent_item\'                => \'Parent Category\',
        \'parent_item_colon\'          => \'Parent Category:\',
        \'new_item_name\'              => \'New Category Name\',
        \'add_new_item\'               => \'Add New Category\',
        \'edit_item\'                  => \'Edit Category\',
        \'update_item\'                => \'Update Category\',
        \'separate_items_with_commas\' => \'Separate categories with commas\',
        \'search_items\'               => \'Search categories\',
        \'add_or_remove_items\'        => \'Add or remove categories\',
        \'choose_from_most_used\'      => \'Choose from the most used categories\',
        \'not_found\'                  => \'Not Found\',
    );
    $rewrite = array(
        \'slug\'                       => \'product-category\', // http://your-domain.com/product-category/product-category-name
        \'with_front\'                 => true,
        \'hierarchical\'               => true,
    );
    $args = array(
        \'labels\'                     => $labels,
        \'hierarchical\'               => true, // If true, they act like categories. If false, like tags.
        \'public\'                     => true,
        \'show_ui\'                    => true,
        \'show_admin_column\'          => true,
        \'show_in_nav_menus\'          => true,
        \'show_tagcloud\'              => true,
        \'rewrite\'                    => $rewrite,
    );
    register_taxonomy( \'product_category\', array( \'store_product\' ), $args ); // Register it to our post type
}
add_action( \'init\', \'dm_create_online_store_product_categories\', 0 ); // Necessary to actually run the above function
如仪表板屏幕所示,结果如下所示:

Dashboard view of new Post Type

查看外观/菜单将显示“产品”和“产品类别”,就像之前显示“流派/作者”一样(如果看不到,请打开右上角的“屏幕选项”选项卡,并确保选中它们)。

要填充它们,只需添加一个产品类别和一个产品-将该产品分配到该类别,如下所示:

Add category to your custom taxonomy

Add product to your custom post type

回顾仪表板中的菜单屏幕,您应该会看到以下两个列表:

enter image description here

SO网友:damienoneill2001

您是如何添加此自定义帖子类型的?您是否使用插件或将其编码到您的函数中。php?

如果对其进行编码,则可以添加\'show_in_nav_menus\' => true, 到您的$args。

你可以在这里读到。http://codex.wordpress.org/Function_Reference/register_post_type

结束

相关推荐

将JS功能添加到wp-admin/post.php中的发布按钮

我在帖子中创建了一个带有新元盒的插件。php。它本身工作得很好,但问题是如果用户选择在WordPress中按“发布/更新/保存”,它将保存其值。我尝试将JQuery函数添加到#publish 项目这种方式是可行的,但它会带来一个恼人的问题:“您确定要离开此页面吗?”window.location.reload() 我不能在那里。 $(\"#publish\").click(function(e) { //e.pr