根据关系动态创建自定义邮政类型另一种自定义邮政类型

时间:2017-11-02 作者:I am the Most Stupid Person

很难解释我想建立什么。因此,我将尝试通过示例来解释它。

Custom Post Type : 可移动的

假设有4个移动帖子。。

诺基亚6、三星S 7、华为P 10、苹果iPhone 7Custom Post Type : 比较

应自动创建以下比较帖子。。

诺基亚6与三星S 7之比较诺基亚6与华为P 10之比较诺基亚6与苹果iPhone 7之比较三星S 7与华为P 10之比较三星S 7与苹果iPhone 7之比较mobile1mobile2 其中包括移动post类型的post id。

有没有可能用WordPress建立这种类型的网站?

我有一些想法使用cron构建它。。。我是说阅读Mobile Posts 并创建比较帖子。。。。但似乎要花太多时间。。。有什么简单的方法吗?

1 个回复
SO网友:jaswrks

我的目标是将另一个设备附加到任何现有的permalink上,以便您可以将一个设备与另一个设备进行比较,反之亦然。这是完全动态/自动的;i、 例如,不需要手动输入和CRON作业等。

让我们假装你有:
https://example.com/mobile-device-a/

我们想添加对的支持:
https://example.com/mobile-device-a/compare/mobile-device-b/
https://example.com/mobile-device-b/compare/mobile-device-a/

参见:add_rewrite_endpoint()

创建一个新的端点,以便您可以访问任何已经存在的移动帖子类型,只需添加.../compare/mobile-device-b/ 最后,它可以用来在运行中转换特定帖子的显示;i、 e.,您将查找/compare/mobile-device-b/ 模板中的终结点。

<?php
add_action( \'init\', function() {
    add_rewrite_endpoint( \'compare\', EP_PERMALINK );
} ); // This syntax requires PHP 5.4+.
另请参见:WordPress Endpoint Introduction

接下来,在模板的single.php 文件,该文件将负责检测/compare/mobile-device-b/ 端点,并相应地调整输出。

我将提供一个快速的示例,演示如何运行子查询并通过slug提取其他设备的内容。然而,毫无疑问,您需要对其进行进一步定制,并将其融入到您的主题和总体设计目标中。

<?php
$compare = get_query_var( \'compare\' );
$compare = sanitize_key( $compare );

if ( is_singular( \'mobile\' ) && $compare ) :
    $sub_query = new WP_Query( array(
        \'post_type\'      => \'mobile\',
        \'name\'           => $compare,
        \'posts_per_page\' => 1,
    ) );
?>
    <?php the_content(); // Of mobile-device-a. ?>

    <?php if ( $sub_query->have_posts() ) : ?>
        <?php while ( $sub_query->have_posts() ) : $sub_query->the_post(); ?>

            <?php the_content(); // Of mobile-device-b. ?>

        <?php endwhile; ?>
    <?php endif; ?>

    <?php wp_reset_postdata(); ?>

<?php endif; ?>

结束

相关推荐