0

我都快哭了!

我已经进行了很多 Google 搜索,但我无法让这段代码按照我想要的方式工作。

在 Wordpress 中,我有以下分类:

Active
- Open
- In-Progress
- Awaiting Parts
- Pending / On-Hold
- Awaiting Pick-up

Closed

https://dl.dropboxusercontent.com/u/30177707/wo-tax.png

我想要的是为特定帖子显示孩子,如果没有孩子,我想只显示父母。

这是我编辑的屏幕截图,因此可以更好地了解我的要求。 https://dl.dropboxusercontent.com/u/30177707/stackoverflow.png

这是我一直在玩的代码:

$terms = wp_get_post_terms($post->ID, 'pctracker_workorderstatus');
$count = count($terms);
if ( $count > 0 ){
   foreach ( $terms as $term ) {
      echo $term->name .'<br>';
   }
}

目前它显示帖子的父母和孩子。

非常感谢您的帮助或指导!

谢谢,杰斯

4

1 回答 1

1

您必须像这样编辑列内容:

这是一个示例代码,您可以根据自己的需要进行调整,基本上我会查看所有术语以了解哪些是父母和孩子。然后根据结果我显示父母或孩子。在您的情况下,总会有 1 个父母和/或 1 个孩子。但是代码应该可以工作。(未测试)

function MYCUSTOMPOSTTYPE_custom_columns( $column_name, $id ) {
    switch ( $column_name ) {
        case 'status':
                $terms = wp_get_post_terms($id, 'pctracker_workorderstatus');
                $count = count($terms);
                if ( $count > 0 ) {
                    $parents = array();
                    $childs = array();
                    foreach ( $terms as $term ) {
                        if(!empty($term->parent)) {
                            $childs[] = $term;
                        } else {
                            $parents[] = $term;
                        }
                    }
                    //display parent if there no child
                    if(empty($childs)) {
                        foreach($parents as $p) {
                            echo $p->name;
                        }
                    } elseif(!empty($parents) && !empty($childs)) {
                        //don't display parent
                        foreach($childs as $p) {
                            echo $p->name;
                        }
                    }                        
                 }
            break;

        default:
            break;
    } // end switch
}
add_action( 'manage_MYCUSTOMPOSTTYPE_posts_custom_column', 'MYCUSTOMPOSTTYPE_custom_columns', 10, 2 );
于 2013-05-03T15:14:06.703 回答