按类别显示的一对多帖子关系(使用帖子对帖子插件)

时间:2017-09-08 作者:KreigD

急需帮助。如果有必要,请告诉我正确的论坛,但我非常需要解决这个问题。

我正在创建一个物业管理网站,其中的基本功能必须如下所示:

用户登录并查看其管理的建筑物/物业我的问题是,我目前正在获取所有建筑物的服务项目,而不仅仅是正在管理的建筑物。当前的流程从名为Buildings的页面(显示所有可用的建筑帖子)(我使用文件模板Buildings.php进行了自定义)到自定义帖子类型“Buildings”的单个页面,该页面显示类别列表(由single Buildings.php处理)到类别。php页面将所选类别中的所有服务项显示到单个。显示单个项目的php页面。

我的大崩溃似乎在分类上。php。我试图只显示类别中与先前选择的建筑柱相关的项目。我正在尝试使用posts-to-posts plugin 为了实现这一点。这是目前为止的代码。

 <?php 
        // Get category id of current page
        $catid = get_queried_object_id();

        // Find connected posts
        $wp_query = new WP_Query( array(
          \'post_type\' => \'buildings\'
        ) );
        p2p_type( \'buildings_to_si\' )->each_connected( $wp_query, array( \'cat\' => $catid ), \'service_items\' );

        // Display connected posts
        while ( $wp_query->have_posts() ) : $wp_query->the_post();

        foreach ( $post->service_items as $post ) : setup_postdata( $post );

      ?>

      <div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center">
        <a class="btn btn-elegant" href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </div>

      <?php endforeach; ?>

      <?php endwhile; ?>
到目前为止,无论插件设置的关系如何,我都会获得所有建筑物的所有类别中的所有帖子。我知道这与我试图在分类档案页面上这样做有关,但我真的不知道现在还能做什么。如果必要的话,我愿意走一条完全不同的路。如果需要,将更新以进行澄清。谢谢

Edit: For Posterity

因此,我根据kuchenundkakao的评论进行了修改。我将此代码添加到单个建筑中。将帖子id添加到类别链接地址的php文件(更新的代码以粗体显示)

<?php

      $args = array(
        \'hide_empty\' => true,
        \'orderby\' => \'name\',
        \'order\' => \'ASC\', 
        \'parent\' => 0,
        \'posts_per_page\' => -1
      );
      $categories = get_categories($args);

      foreach($categories as $category) { 

        // Get the ID of a given category
        $category_id = get_cat_ID( $category->name );
        // Get the URL of this category
        $category_link = get_category_link( $category_id );

        /////////// Added bit of code /////////////////
        $category_link .= "?building_id=".get_the_ID();

        echo \'<div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center"><a class="btn btn-lg btn-elegant" href="\' . $category_link.\'" role="button">\' .      
        $category->name.\'</a></div>\';


    ?>
然后在类别上。php我添加了几个变量来检索该id。下面是基于此更新的代码。

<?php 
        // Get category id of current page
        $catid = get_queried_object_id();

        ////////// Added code ////////////////
        $buildingid = $_GET[\'building_id\'];

        // Find connected posts
        $wp_query = new WP_Query( array(
          \'post_type\' => \'buildings\',

        ////////// Added code ////////////////
          \'p\' => $buildingid
        ) );
        p2p_type( \'buildings_to_si\' )->each_connected( $wp_query, array( \'cat\' => $catid ), \'service_items\' );

        // Display connected posts
        while ( $wp_query->have_posts() ) : $wp_query->the_post();

        foreach ( $post->service_items as $post ) : setup_postdata( $post );

      ?>

      <div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center">
        <a class="btn btn-elegant" href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </div>

      <?php endforeach; ?>

      <?php endwhile; ?>
这已经解决了这个问题,并允许我继续按预期使用类别页面。它确实给我的URL添加了一些混乱,但这是一个公司的私人网站,所以这不会是一个问题。

1 个回复
最合适的回答,由SO网友:HU ist Sebastian 整理而成

我对posts-to-posts插件不太熟悉,但您的主要问题可能是,如果您不将其传输到参数中或保存到会话或cookie中,则类别页面可能不知道您在之前的步骤中选择了哪个建筑。也许在buildings页面上输出连接的项目会更好,如下所示:

 Building (description etc)
 - category 1
       -item 1
 - category 2
         -item 2
         -item 3
         ...

结束

相关推荐

Virtual Pages plugins

我很难让插件正常工作Virtual Pages (WordPress插件可简化虚拟页面的创建)我确实进行了编辑,根据查询创建了一个循环。add_action( \'gm_virtual_pages\', function( $controller ) { /* Creating virtuals pages for companies */ $args = array( \'post_type\' => array(\'companies\',), \'post_status\'

按类别显示的一对多帖子关系(使用帖子对帖子插件) - 小码农CODE - 行之有效找到问题解决它

按类别显示的一对多帖子关系(使用帖子对帖子插件)

时间:2017-09-08 作者:KreigD

急需帮助。如果有必要,请告诉我正确的论坛,但我非常需要解决这个问题。

我正在创建一个物业管理网站,其中的基本功能必须如下所示:

用户登录并查看其管理的建筑物/物业我的问题是,我目前正在获取所有建筑物的服务项目,而不仅仅是正在管理的建筑物。当前的流程从名为Buildings的页面(显示所有可用的建筑帖子)(我使用文件模板Buildings.php进行了自定义)到自定义帖子类型“Buildings”的单个页面,该页面显示类别列表(由single Buildings.php处理)到类别。php页面将所选类别中的所有服务项显示到单个。显示单个项目的php页面。

我的大崩溃似乎在分类上。php。我试图只显示类别中与先前选择的建筑柱相关的项目。我正在尝试使用posts-to-posts plugin 为了实现这一点。这是目前为止的代码。

 <?php 
        // Get category id of current page
        $catid = get_queried_object_id();

        // Find connected posts
        $wp_query = new WP_Query( array(
          \'post_type\' => \'buildings\'
        ) );
        p2p_type( \'buildings_to_si\' )->each_connected( $wp_query, array( \'cat\' => $catid ), \'service_items\' );

        // Display connected posts
        while ( $wp_query->have_posts() ) : $wp_query->the_post();

        foreach ( $post->service_items as $post ) : setup_postdata( $post );

      ?>

      <div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center">
        <a class="btn btn-elegant" href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </div>

      <?php endforeach; ?>

      <?php endwhile; ?>
到目前为止,无论插件设置的关系如何,我都会获得所有建筑物的所有类别中的所有帖子。我知道这与我试图在分类档案页面上这样做有关,但我真的不知道现在还能做什么。如果必要的话,我愿意走一条完全不同的路。如果需要,将更新以进行澄清。谢谢

Edit: For Posterity

因此,我根据kuchenundkakao的评论进行了修改。我将此代码添加到单个建筑中。将帖子id添加到类别链接地址的php文件(更新的代码以粗体显示)

<?php

      $args = array(
        \'hide_empty\' => true,
        \'orderby\' => \'name\',
        \'order\' => \'ASC\', 
        \'parent\' => 0,
        \'posts_per_page\' => -1
      );
      $categories = get_categories($args);

      foreach($categories as $category) { 

        // Get the ID of a given category
        $category_id = get_cat_ID( $category->name );
        // Get the URL of this category
        $category_link = get_category_link( $category_id );

        /////////// Added bit of code /////////////////
        $category_link .= "?building_id=".get_the_ID();

        echo \'<div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center"><a class="btn btn-lg btn-elegant" href="\' . $category_link.\'" role="button">\' .      
        $category->name.\'</a></div>\';


    ?>
然后在类别上。php我添加了几个变量来检索该id。下面是基于此更新的代码。

<?php 
        // Get category id of current page
        $catid = get_queried_object_id();

        ////////// Added code ////////////////
        $buildingid = $_GET[\'building_id\'];

        // Find connected posts
        $wp_query = new WP_Query( array(
          \'post_type\' => \'buildings\',

        ////////// Added code ////////////////
          \'p\' => $buildingid
        ) );
        p2p_type( \'buildings_to_si\' )->each_connected( $wp_query, array( \'cat\' => $catid ), \'service_items\' );

        // Display connected posts
        while ( $wp_query->have_posts() ) : $wp_query->the_post();

        foreach ( $post->service_items as $post ) : setup_postdata( $post );

      ?>

      <div class="col-lg-3 col-md-4 col-sm-6 p-3 text-center">
        <a class="btn btn-elegant" href="<?php the_permalink(); ?>">
          <?php the_title(); ?>
        </a>
      </div>

      <?php endforeach; ?>

      <?php endwhile; ?>
这已经解决了这个问题,并允许我继续按预期使用类别页面。它确实给我的URL添加了一些混乱,但这是一个公司的私人网站,所以这不会是一个问题。

1 个回复
最合适的回答,由SO网友:HU ist Sebastian 整理而成

我对posts-to-posts插件不太熟悉,但您的主要问题可能是,如果您不将其传输到参数中或保存到会话或cookie中,则类别页面可能不知道您在之前的步骤中选择了哪个建筑。也许在buildings页面上输出连接的项目会更好,如下所示:

 Building (description etc)
 - category 1
       -item 1
 - category 2
         -item 2
         -item 3
         ...

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。