在一个管理菜单下显示不同的自定义帖子类型

时间:2014-11-17 作者:Dongsan

我正在创建多个custom post types 已经hierarchies, 其中有几个有很强的相关性,比如parent-child.

例如,ahouse 自定义帖子类型有bedroomkitchen 自定义帖子类型作为其子项。

我想做的是在一个管理ui菜单下显示这三种自定义帖子类型,以便它可以显示如下所示:

House (<;--这应该是管理ui中的菜单项)

House A (<;--这是属于“house”自定义帖子类型的帖子)

-卧室1(<;--这是属于“卧室”自定义帖子类型的帖子)

-卧室2

-厨房1(<;--这是属于“厨房”自定义帖子类型的帖子)

-厨房2

-厨房3

House B

-卧室3

-卧室4

-厨房4

到目前为止,我可以使用hierarchy属性创建这些自定义帖子类型,但无法在一个管理ui菜单中完全显示它们。我可以使用显示父自定义帖子类型下的子自定义帖子类型\'show_in_menu\' => \'edit.php?post_type=house\', 但这不是我想要的。

有人知道如何在一个管理菜单中显示具有父子关系的不同自定义帖子类型吗?

我知道这有一些插件,但我需要通过编程来实现。

ADDED

为了让我的问题更清楚,这就是我试图实现但失败的目标:

$args = array(
    \'post_title\'    => \'House as a parent post\',
    \'post_type\'     => \'house\',
    \'post_status\'   => \'publish\'
);

$pid = wp_insert_post( $args );
do_action( \'wp_insert_post\', \'wp_insert_post\' );

$args = array(
    \'post_title\'    => \'Bedroom as a child post\',
    \'post_type\'     => \'bedroom\',
    \'post_parent\'   => $pid,
    \'post_status\'   => \'publish\'
);

wp_insert_post( $args );
do_action( \'wp_insert_post\', \'wp_insert_post\' );
我想要的是从不同的自定义帖子类型创建两篇帖子,以建立父子关系,并显示在相同的管理菜单中,如“Dashboard”>“House”下。

1 个回复
SO网友:Seenuvasan Velayutham

step 1: 在函数中粘贴以下代码。php(更改post\\u类型)

function house_a() {
    $args = array(
        \'post_type\' => \'house_a\',
        \'post_status\' => \'publish\',
        \'posts_per_page\' => -1,
        \'caller_get_posts\'=> 1
    );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
        $returnvariable = "";
        while ($my_query->have_posts()) : $my_query->the_post(); 
            $returnvariabla .= get_the_content();
        endwhile;
        return $returnvariable;
    }
    wp_reset_query();
}
add_shortcode("house_a","house_a");

function house_b() {
    $args = array(
        \'post_type\' => \'house_a\',
        \'post_status\' => \'publish\',
        \'posts_per_page\' => -1,
        \'caller_get_posts\'=> 1
    );
    $my_query = null;
    $my_query = new WP_Query($args);
    if( $my_query->have_posts() ) {
        $returnvariable = "";
        while ($my_query->have_posts()) : $my_query->the_post(); 
            $returnvariabla .= get_the_content();
        endwhile;
        return $returnvariable;
    }
    wp_reset_query();
}
add_shortcode("house_b","house_b");
step 2: 在显示页面中粘贴以下快捷码

[house_a]
[house_b]

结束

相关推荐