首页 > 解决方案 > 在选项卡下的页面中加载帖子类型

问题描述

我有一个包含三个选项卡的页面。我正在使用 nav-tab-wrapper 类和 php 来检查哪个选项卡处于活动状态。我的第三个选项卡是用于记录的自定义帖子类型。我正在尝试在选项卡下加载自定义帖子类型,而不是重定向到另一个页面。我还没有弄清楚如何做到这一点。

我尝试使用 href="page" 但它重定向到帖子类型页面。我尝试使用 href= page&tab,然后在该选项卡上包含页面。这会导致错误。

<?php $active_tab = isset($_GET['tab']) ? $_GET['tab'] :   'entries'; // end if ?>

    <h2 class="nav-tab-wrapper">
        <a href="?page=test-app&tab=entries" class="nav-tab <?php echo $active_tab == 'entries' ? 'nav-tab-active' : ''; ?>">Entries</a>
        <a href="?page=test-app&tab=maps" class="nav-tab <?php echo $active_tab == 'maps' ? 'nav-tab-active' : ''; ?>">Maps</a>
        <a href="?page=test-app&tab=logs" class="nav-tab <?php echo $active_tab == 'logs' ? 'nav-tab-active' : ''; ?>">Logs</a>
    </h2>

    <form method="post" action="options.php">

        <?php
if ($active_tab == 'entries') {
    include 'entries.php';
} else if ($active_tab == 'maps') {
    include 'maps.php';
} else if ($active_tab == 'logs'){
// THIS IS WHERE I NEED TO LOAD THE POST TYPE TABLE. I WANT TO LOAD THE PAGE UNDER THE TAB.
}

预期:日志(post_type)表在日志选项卡下加载

实际结果:我可以重定向到页面,但我不知道如何在实际选项卡下加载。

标签: phpwordpresstabscustom-post-type

解决方案


您要做的就是对该帖子类型进行自定义查询,以获取该条件内该类型的帖子( $active_tab == 'logs' )。您可以通过 WP_Query 来完成。要了解有关 WP_Query 的更多信息,请查看此链接:https ://www.billerickson.net/code/wp_query-arguments/

在这里,您将找到有关如何使用所有可能参数的此功能的信息。

在您的代码中,这将类似于下面的代码。

else if ($active_tab == 'logs'){

// THIS IS WHERE I NEED TO LOAD THE POST TYPE TABLE. I WANT TO LOAD THE PAGE UNDER THE TAB.

 $arg = array(
   'post_type' => {POST TYPE NAME},
  );

  $the_query = new WP_Query( $args );

  // The Loop
  if ( $the_query->have_posts() ) {
      while ( $the_query->have_posts() ) {
        $the_query->the_post();
        // Do Stuff, here you print anything regarding your post, i have printed the title for the current post as an example
         the_title()
      } // end while
  } // endif

  // Reset Post Data
   wp_reset_postdata();
}

推荐阅读