我找到了很多解决方案,但我的情况完全不同。
现在我的问题是,我正在开发一个插件,在插件中我制作了自定义帖子类型和自定义分类法,首先它的slug是不同的,现在我希望post类型slug和分类法slug是相同的,我也成功地实现了这一点,但有一个问题是,我的类别链接没有显示在管理菜单中,因为当我注册分类法时,我将object_type设置为slug,这在post类型slug和分类法slug中是相同的,但当我将对象类型更改为post类型name category时菜单显示得很好。
这是我的密码
帖子类型代码:
add_action('init', 'kbe_articles');
function kbe_articles() {
$labels = array(
'name' => __('Articles', 'kbe'),
'singular_name' => __('Articles', 'kbe'),
'all_items' => __('Articles', 'kbe'),
'add_new' => __('New Article', 'kbe'),
'add_new_item' => __('Add New Article', 'kbe'),
'edit_item' => __('Edit Article', 'kbe'),
'new_item' => __('New Article', 'kbe'),
'view_item' => __('View Articles', 'kbe'),
'search_items' => __('Search Articles', 'kbe'),
'not_found' => __('Nothing found', 'kbe'),
'not_found_in_trash' => __('Nothing found in Trash', 'kbe'),
'parent_item_colon' => ''
);
$kbe_rewrite = array(
'slug' => KBE_PLUGIN_SLUG,
'with_front' => false,
'pages' => true,
'feeds' => true,
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'menu_icon' => WP_Articles.'images/icon-kbe.png',
'capability_type' => 'post',
'hierarchical' => false,
'menu_position' => 3,
'supports' => array('title','editor','thumbnail','comments'),
'rewrite' => $kbe_rewrite,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => true
);
register_post_type( 'kbe_articles' , $args );
flush_rewrite_rules();
}
分类法代码:
add_action( 'init', 'kbe_taxonomies');
function kbe_taxonomies() {
// Add new taxonomy, make it hierarchical (like categories)
$labels = array(
'name' => __( 'Articles Category', 'kbe'),
'singular_name' => __( 'Articles Category', 'kbe' ),
'search_items' => __( 'Search Articles Category', 'kbe' ),
'all_items' => __( 'All Articles Categories', 'kbe' ),
'parent_item' => __( 'Parent Articles Category', 'kbe' ),
'parent_item_colon' => __( 'Parent Articles Category:', 'kbe' ),
'edit_item' => __( 'Edit Articles Category', 'kbe' ),
'update_item' => __( 'Update Articles Category', 'kbe' ),
'add_new_item' => __( 'Add New Articles Category', 'kbe' ),
'new_item_name' => __( 'New Articles Category Name', 'kbe' ),
);
register_taxonomy( 'kbe_taxonomy', array(KBE_PLUGIN_SLUG), array(
'hierarchical' => true,
"label" => 'Categories',
"singular_label" => "Articles Category",
'show_ui' => true,
'show_admin_column' => true,
'show_in_nav_menus' => true,
'show_tagcloud' => true,
'query_var' => true,
'rewrite' => array( 'slug' => KBE_PLUGIN_SLUG, 'with_front' => true ),
));
flush_rewrite_rules();
}
这是代码,所以我的文章类型段和分类法段是一样的:
function taxonomy_slug_rewrite($wp_rewrite) {
$rules = array();
$taxonomies = get_taxonomies(array('_builtin' => false), 'objects');
$post_types = get_post_types(array('public' => true, '_builtin' => false), 'names');
foreach ($post_types as $post_type) {
$post_type_data = get_post_type_object( $post_type );
$post_type_slug = $post_type_data->rewrite['slug'];
foreach ($taxonomies as $taxonomy) {
if ($taxonomy->object_type[0] == $post_type_slug) {
$categories = get_categories(array('type' => $post_type_slug, 'taxonomy' => $taxonomy->name, 'hide_empty' => 0));
/* @var $category type */
foreach ($categories as $category) {
$rules[$post_type_slug . '/' . $category->slug . '/?$'] = 'index.php?' . $category->taxonomy . '=' . $category->slug;
}
}
}
}
$wp_rewrite->rules = $rules + $wp_rewrite->rules;
}
add_filter( 'generate_rewrite_rules', 'taxonomy_slug_rewrite' );
这是我的菜单代码:
add_action('admin_menu', 'kbe_plugin_menu');
function kbe_plugin_menu() {
add_submenu_page('edit.php?post_type=kbe_articles', 'Order', 'Order', 'manage_options', 'kbe_order', 'wp_kbe_order');
add_submenu_page('edit.php?post_type=kbe_articles', 'Settings', 'Settings', 'manage_options', 'kbe_options', 'wp_kbe_options');
}
现在,当我更改register\u分类法('kbe\u taxonomy',array('kbe\u articles'),
mytaxonomy链接出现在管理自定义菜单中,但当我更改register\u分类法('kbe\u taxonomy',array(kbe\u PLUGIN\u SLUG)),分类法链接将从菜单中消失。
那个么我该怎么做才能使我的分类链接出现在菜单中呢。但不是换鼻涕虫。
好的,这是答案。
我再加一个子菜单
这是我的密码:
add_submenu_page('edit.php?post_type=foo_articles', 'Categories', 'Categories', 'manage_options', 'edit-tags.php?taxonomy=foo_taxonomy&post_type=foo_articles');
我已经为我的自定义帖子类型注册了自定义分类法: 工作如预期-我可以为我的自定义帖子选择自定义类别。 然后我将其添加到自定义菜单中: 它显示: 当我点击它(“类别”链接)时,分类法编辑页面加载良好,但是,父菜单显示为折叠,子菜单(“类别”)不突出显示: 另一方面,定制的post类型(linke“virtualproducts”)工作正常(见第一张图)。 我可以做一些破解/解决方法,使用JS/CSS使
我试图显示一个管理菜单项下的自定义分类法,这只是一个页面,即http://example.com/wp-admin/admin.php?page=bla. 根据register\u分类法下的WordPress Dev.页面的,它说: “某些字符串”-如果是现有的顶级页面,如“工具”。php“或”编辑。php?post_type=page',post类型将作为该页面的子菜单放置。 这是否意味着分类法
我在WordPress文件,但当我想添加新文章或编辑新文章时,在“管理”菜单的右侧找不到自定义分类法元框 我的代码用于自定义分类法: 但我找不到我在截图中标记的位置: 我忘记或错过了什么吗?
我不知道为什么自定义文章类型的自定义分类不显示在管理列中(它消失了)。 以下是始终有效的代码: 如下所述: https://codex.wordpress.org/Function_Reference/register_taxonomy 第二个参数设置为null,因为在使用register\u post\u type()时,我将分类法与自定义post类型相关联 我不知道为什么代码停止工作了。我从3
我已经搜索了又搜索,除了我称之为“hack方法”的方法之外,找不到其他方法将自定义分类添加到自定义管理菜单中。 然后我注册我的帖子类型并确保它们使用 这可以工作,自定义帖子类型显示在我的自定义菜单中。 但是自定义分类法不接受同一属性的字符串,只接受true或false。 因此,要添加它,您必须创建一个子菜单页 这是一种“黑客”方式。 还有别的办法吗?如果不修改WordPress核心,我可以覆盖re
在我正在构建的当前网站中,我构建了以下功能。 对当前形势给予更好的理解。 有一个叫做博客的页面。此页面显示列表中的所有博客(帖子)。所有职位的类别都有一个例外。用户可以选择一个类别。一旦用户单击它,用户将转到该类别。php并查看所有具有该特定类别的帖子。 我想创建相同的场景,但不是用自定义帖子类型。我有一个模板部分;offer-list-template.php offer-list-templa