我正在Wordpress中工作,并实现了一些PHP以在页面上显示所有类别(按简码)。通过单击类别,它可以链接到显示该类别所有帖子的新页面。
如何仅显示某些类别,例如按类别的ID和/或名称显示?
一个帖子有两个类别( a :A和 B 或A& C )。因此,一个帖子 a 始终具有一个类别A,而一个类别 B 或 C 。
这是我的代码:
-- Trying to put the Original into OPENQUERY.
''"''+ lnv.Name +''"'' As [Column Name]
例如,我在前几行尝试了此操作,但没有成功:
function swerft_categories( ){
ob_start();
$categories = get_categories();
echo '<div class="swerft_cat">';
foreach($categories as $category) {
echo '<div class="swerft_cat_single col-lg-3 col-md-3 col-sm-6 col-xs-12">';
echo '<div class="swerft_cat_single_inner">';
$thim_group_custom_title_bg_img = get_term_meta( $category->term_id, 'thim_group_custom_title_bg_img', true );
if ($thim_group_custom_title_bg_img) {
$image_id = $thim_group_custom_title_bg_img['id'];
if ($image_id) {
$post_thumbnail_img = wp_get_attachment_image_src( $image_id, 'full' );
echo '<a href="' . get_category_link($category->term_id) . '"><img src="' . $post_thumbnail_img[0] . '" alt="' . $category->name . '" /></a>';
}
}
echo '<a href="' . get_category_link($category->term_id) . '"><h5>'. $category->name .'</h5></a>';
echo '<p>'. $category->description . $category->count . '<span> Seminare </span>' . '</p>';
echo '</div>';
echo '</div>';
}
echo '</div>';
return ob_get_clean();
}
add_shortcode( 'swerft_categories', 'swerft_categories' );
1)我只想显示一个特定的关系。假设:只有 a 的关系:A和 B 2)我希望计数仅根据上述关系显示帖子的数量。 3)通过单击基于此关系的类别,我当然只希望显示那些帖子。
答案 0 :(得分:0)
与同事一起,我能够找到上述问题的解决方案。参见下面的代码,希望它可以对某人有所帮助;并感谢任何考虑此任务的人;)
// Function to only show individual seminars after click on category on category-page
function swerft_filter_posts_open_individual_seminare( $query ) {
$offene_seminare = isset($_GET['offene_seminare']) ? boolval($_GET['offene_seminare']) : false;
$individual_seminars_category_id = 91;
if($query->is_category() && $query->is_main_query()) {
if ($offene_seminare) {
$query->set( 'category__not_in', $individual_seminars_category_id );
} else {
$query->set( 'category__in', $individual_seminars_category_id );
}
}
}
add_action( 'pre_get_posts', 'swerft_filter_posts_open_individual_seminare' );
// Function to only count individual seminars in overview
function swerft_count_individual_seminars_in_category($category_id) {
$individual_seminars_category_id = 91;
$query_args = array(
'post_type' => 'post',
'category__and' => array($individual_seminars_category_id, $category_id)
);
$query = new WP_Query( $query_args );
$count = $query->found_posts;
return $count;
}