从CPT按元订购Post 2 Post Admin meta box

时间:2013-09-18 作者:Sonoman

我刚刚开始使用Posts 2 Posts(顺便说一下,这是一个很棒的插件),并结合了一个名为“艺术家”的自定义post类型和WP事件管理器插件。我的目标是使用P2P将艺术家链接到活动,以便活动页面可以显示谁在表演。

我在Event Manager中创建了一系列重复发生的事件,可以理解,这些事件具有递增的post ID,例如5、6、7。让我们假设这些事件都发生在随后的周一。然后我创建了一个重复发生的事件,比如在一个星期五,帖子ID是8,9,10,11。。。。。

现在,我可以通过post ID在admin中订购元框的顺序,如下所示:

function order_pages_by_ID( $args, $ctype, $post_id ) {
if ( \'posts_to_pages\' == $ctype->name ) {
    $args[\'orderby\'] = \'ID\';
    $args[\'order\'] = \'asc\';
}

return $args;
}

add_filter( \'p2p_connectable_args\', \'order_pages_by_ID\', 10, 3 );
但当我试图从艺术家页面将艺术家连接到事件时,现在将显示所有周一事件,然后显示所有周五事件。我想要的是周一、周五、周一、周五等。活动CPT有一个custcom字段,名为_event_start_date 我可以使用以下方法将其附加到管理元框中的标签:

function append_date_to_candidate_title( $title, $post, $ctype ) {
    if ( \'my_connection_type\' == $ctype->name && \'event\' == $post->post_type ) {
            $meta = get_post_meta( $post->ID, "_event_start_date" );
            $title .= " (" . reset($meta) . ")";
    }

    return $title;
}
是否有任何可能的方法来对admin meta框的查询进行排序,以将此自定义字段考虑在内并按此排序(或者甚至在以后在PHP中排序)?我已经看到了一些例子,当从前端使用“get\\u connected()”时,在管理元框中没有任何与排序相关的内容来排序帖子。

1 个回复
SO网友:Sonoman

我终于找到了答案。事实证明,我只是需要更好地理解WPQuery。

结果很简单:

function order_pages_by_ID( $args, $ctype, $post_id ) {
    if ( \'posts_to_pages\' == $ctype->name ) {
        $args[\'meta_key\'] = \'_event_start_date\';
        $args[\'orderby\']  = \'meta_value\';
        $args[\'order\']    = \'asc\';
    }
}

结束

相关推荐

WordPress子域wp-admin重定向到主域

我们在地址www.example上安装了wordpress。com。我们希望有一个作为子域的开发站点,所以我们创建了一个子域dev.example。cpanel上的com。创建了其数据库的副本,并将文件复制到dev.example的根目录中。com。然后修改wp配置。php指向重复的db。现在的问题是,当我们尝试访问dev.example时。com/wp管理员,它重定向到https://www.example.com/wp-login.php?redirect_to=https%3A%2F%2Fdev.e

从CPT按元订购Post 2 Post Admin meta box - 小码农CODE - 行之有效找到问题解决它

从CPT按元订购Post 2 Post Admin meta box

时间:2013-09-18 作者:Sonoman

我刚刚开始使用Posts 2 Posts(顺便说一下,这是一个很棒的插件),并结合了一个名为“艺术家”的自定义post类型和WP事件管理器插件。我的目标是使用P2P将艺术家链接到活动,以便活动页面可以显示谁在表演。

我在Event Manager中创建了一系列重复发生的事件,可以理解,这些事件具有递增的post ID,例如5、6、7。让我们假设这些事件都发生在随后的周一。然后我创建了一个重复发生的事件,比如在一个星期五,帖子ID是8,9,10,11。。。。。

现在,我可以通过post ID在admin中订购元框的顺序,如下所示:

function order_pages_by_ID( $args, $ctype, $post_id ) {
if ( \'posts_to_pages\' == $ctype->name ) {
    $args[\'orderby\'] = \'ID\';
    $args[\'order\'] = \'asc\';
}

return $args;
}

add_filter( \'p2p_connectable_args\', \'order_pages_by_ID\', 10, 3 );
但当我试图从艺术家页面将艺术家连接到事件时,现在将显示所有周一事件,然后显示所有周五事件。我想要的是周一、周五、周一、周五等。活动CPT有一个custcom字段,名为_event_start_date 我可以使用以下方法将其附加到管理元框中的标签:

function append_date_to_candidate_title( $title, $post, $ctype ) {
    if ( \'my_connection_type\' == $ctype->name && \'event\' == $post->post_type ) {
            $meta = get_post_meta( $post->ID, "_event_start_date" );
            $title .= " (" . reset($meta) . ")";
    }

    return $title;
}
是否有任何可能的方法来对admin meta框的查询进行排序,以将此自定义字段考虑在内并按此排序(或者甚至在以后在PHP中排序)?我已经看到了一些例子,当从前端使用“get\\u connected()”时,在管理元框中没有任何与排序相关的内容来排序帖子。

1 个回复
SO网友:Sonoman

我终于找到了答案。事实证明,我只是需要更好地理解WPQuery。

结果很简单:

function order_pages_by_ID( $args, $ctype, $post_id ) {
    if ( \'posts_to_pages\' == $ctype->name ) {
        $args[\'meta_key\'] = \'_event_start_date\';
        $args[\'orderby\']  = \'meta_value\';
        $args[\'order\']    = \'asc\';
    }
}

相关推荐

WordPress多站点不工作wp-admin

我有一个多站点,在更改了重定向之后,我丢失了wp admin,我返回了configs,但如果丢失了config htaccess。我插入域。站点/wp管理并转到域。地点我有这个:Htaccess<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-z