[插件:发布2个帖子]相互连接

时间:2011-06-18 作者:Mike

我正在使用Posts 2 Posts插件。我有两种自定义类型:电影和演员。我创建了一个电影=>演员连接,这样对于每部电影,我都可以看到哪些演员在其中扮演角色。

但据我所知,为了找出某个演员演过的所有电影,还必须创建一个演员=>电影连接。

因此,如果创建一个Christian Bale=>The Dark Knight连接,我也必须创建一个Christian Bale=>The Dark Knight。因为否则我就无法知道克里斯蒂安·贝尔在那部基于“克里斯蒂安·贝尔”搜索的电影中扮演的角色。

对吗?如果是的话,有没有办法减轻它的负担?

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

要查看两个编辑屏幕上的连接,请设置reciprocaltrue, 但请注意,这仅适用于UI,否则不会影响连接。

function my_connection_types() {
    if ( !function_exists( \'p2p_register_connection_type\' ) )
        return;

    p2p_register_connection_type( array( 
        \'from\' => \'movies\',
        \'to\' => \'actors\',
        \'reciprocal\' => true
    ) );
}
add_action( \'init\', \'my_connection_types\', 100 );

SO网友:John P Bloch

不,你不应该每种方式都需要一个。

您可以查询一个连接的任意方向,所以类似的内容可以让您了解《黑暗骑士》中的所有演员:

$actors = new WP_Query( array(
  \'post_type\' => \'actors\',
  \'connected_from\' => $dark_knights_post_id,
));
这将为您带来克里斯蒂安·贝尔(ChristianBale)出演过的所有电影:

$bale_movies = new WP_Query( array(
  \'post_type\' => \'movies\',
  \'connected_to\' => $christian_bales_post_id,
));
你可以阅读更多on the plugin\'s documentation page.

结束

相关推荐

GPL and plugins

插件开发中心说:“您的插件必须与GPLv2兼容。”。但我发现Topsy插件在GPLv3下。http://www.gnu.org/licenses/rms-why-gplv3.html 声明GPLv2和GPLv3不兼容。那么这应该被允许吗?我想使用Topsy插件中的一些代码。那么,我应该在GPLv2或GPLv3下发布插件吗??