Php 如何在自定义帖子类型中显示类别和帖子
我需要一些帮助,因为我已经用尽了所有我能找到信息的地方。这就是我想做的: 我在我的管理员中创建了一个名为Classes的自定义帖子类型 这工作很好,数据工作很好,它的管理输入。 我想制作一个自定义模板来显示此自定义帖子类型。但是,我尝试的所有内容都没有正确显示。我尝试了许多代码变体。 我知道有些人已经这样做了,并有代码块来显示这一点。这就是我所需要的代码: 列出我的自定义帖子类型“类”中的所有类别 列出所有帖子显示所有内容,而不是每个类别内的链接或摘录。 显示它,就像我使用Jquery Accordion一样 (四)类别 书名 内容 ======================================================== 顺便说一下,这是我目前正在使用的代码块。它确实有效,但它只显示帖子,所有的帖子。它不会显示包含帖子的类别Php 如何在自定义帖子类型中显示类别和帖子,php,jquery,wordpress,Php,Jquery,Wordpress,我需要一些帮助,因为我已经用尽了所有我能找到信息的地方。这就是我想做的: 我在我的管理员中创建了一个名为Classes的自定义帖子类型 这工作很好,数据工作很好,它的管理输入。 我想制作一个自定义模板来显示此自定义帖子类型。但是,我尝试的所有内容都没有正确显示。我尝试了许多代码变体。 我知道有些人已经这样做了,并有代码块来显示这一点。这就是我所需要的代码: 列出我的自定义帖子类型“类”中的所有类别 列出所有帖子显示所有内容,而不是每个类别内的链接或摘录。 显示它,就像我使用Jquery Acco
<?php
$type = 'classes';
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 10,
'ignore_sticky_posts'=> 1
);
$temp = $wp_query; // assign ordinal query to temp variable for later use
$wp_query = null;
$wp_query = new WP_Query($args);
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
echo '<h3 class="acc1">';
the_title();
echo '</h3>';
echo '<div class="sc"><div class="vs"><a href="/schedule" class="reg-but">View Schedule</a></div>';
the_content();
echo '</div>';
endwhile;
else :
echo '<h2>Not Found</h2>';
get_search_form();
endif;
$wp_query = $temp;
?>
社区,我需要你。请给出您的反馈 实际上,您要做的是从一个类别查询开始。您必须确保使用自定义帖子类型查询所有类别: 然后,对于每一个类别,你都会做上面提到的事情
$taxonomy = 'classes';
$args = array('hide_empty' => false,);
$terms = get_terms( $taxonomy, $args );
foreach($terms as $val) {
$term_id = $val->term_id;
$term_name = $val->name;
// now do post query
}
您很可能还需要将类别名称显示为手风琴的标题
以下是get_术语的所有参数:
对于该查询,您很可能还必须在页面上对其使用简单的分类查询搜索。
通过将此参数添加到上述查询:
'tax_query' =>
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( $term_name )
)
这就是你要找的吗
也许有更好的方法可以做到这一点,但我最近不得不这么做,并且做了我刚才概述的很多事情
我应该更清楚地说,将posts查询放在terms查询的foreach中
这是根据你上次的回复更新的答案,我还没有测试过
<?php
$taxonomy = 'classes';
$args = array('hide_empty' => false,);
$terms = get_terms( $taxonomy, $args );
foreach($terms as $val) {
$term_id = $val->term_id;
$term_name = $val->name;
$type = 'classes';
$args = array (
'post_type' => $type,
'post_status' => 'publish',
'paged' => $paged,
'posts_per_page' => 10,
'ignore_sticky_posts'=> 1,
'tax_query' =>
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( $term_name )
)
);
$temp = $wp_query; // assign ordinal query to temp variable for later use
$wp_query = null;
$wp_query = new WP_Query($args);
if ( $wp_query->have_posts() ) :
while ( $wp_query->have_posts() ) : $wp_query->the_post();
echo '<h3 class="acc1">';
the_title();
echo '</h3>';
echo '<div class="sc"><div class="vs"><a href="/schedule" class="reg-but">View Schedule</a></div>';
the_content();
echo '</div>';
endwhile;
else :
echo '<h2>Not Found</h2>';
get_search_form();
endif;
$wp_query = $temp;
}
?>