我们知道Wordpress中的single.php
位于循环内部,因此我可以直接使用the_title()
或the_permalink()
,而无需创建自定义查询。
我已经这样做了,但最重要的是,我有一个侧边栏,显示最新的帖子(自定义帖子类型)及其标题,链接和类别。
我可以检索除类别链接以外的所有相关信息。
我现在的代码会为所有帖子返回类别uncategorized
,即使它们都属于特定类别。
这是我正在使用的自定义查询,它从cards
single.php
中提取帖子
注意$categories = get_categories();
- foreach循环显示所有帖子的以下网址,但这不是真的。
http://localhost/wonderhive/category/uncategorized/
如何解决此问题并检索正确的类别网址?因为我已经检索了正确的类别名称。
<?php
$queryObject = new WP_Query( 'post_type=cards&posts_per_page=-1' );
if ($queryObject->have_posts()) {
while ($queryObject->have_posts()) {
$queryObject->the_post(); ?>
<div class="vista bg-black p-12 h-60 black">
<a href="<?php the_permalink(); ?>">
<img src="<?php the_post_thumbnail_url('small'); ?>" alt="gian" class="f-left foto r-100 ">
<div class="f-left">
<h5 class="gray2">
<?php
$thetitle = $post->post_title;
$getlength = strlen($thetitle);
$thelength = 45;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</h5>
</a>
<h6>
<?php
$categories = get_categories();
foreach ($categories as $cat) {
$category_link = get_category_link($cat->cat_ID);
echo $category_link;
}
?>
<a href="">
<?php $terms = wp_get_post_terms($post->ID,'categories');
foreach ($terms as $term) {
echo $term->name;
}
?>
</a>
</h6>
</div>
<span class="f-right"><?php echo get_the_date(); ?></span>
</div>
<?php }
}
?>
答案 0 :(得分:0)
您应该使用$categories = get_the_category()
代替$categories = get_categories()
。此函数将获取当前帖子的类别。
有关详细信息,请参阅WordPress Codex on get_the_category()。祝你好运!