根据用户选择的分类法显示帖子

问题描述 投票:0回答:1

我有一个网站,其分类法名为“db_themen”,具有不同的值。我网站上的帖子被分配给“db_themen”中的这些分类值。

在我的网站上,用户可以在他的前端用户配置文件中选择他感兴趣的“db_themen”并保存此输入。这是通过“分类法”类型的 ACF 字段(字段名称:“meine_themen”)来实现的,该字段链接到分类法“db_themen”。

根据他的输入,只有分配给相同分类法的帖子才应该显示在该用户的前端档案(Elementor 档案循环网格)上。

我尝试在我的functions.php 中编写一些代码,但我完全是一个初学者。此代码唯一做的就是隐藏后端中的所有帖子条目:

function abfrage_meine_themen($query) {
    if ($query->is_main_query() && is_user_logged_in()) {
    $ausgewaehlte_themen = get_field('meine_themen', 'user_' . get_current_user_id());
        if ($ausgewaehlte_themen) {         
            $tax_query = array(
                array(
                    'taxonomy' => 'db_themen',
                    'field'    => 'slug',
                    'terms'    => $ausgewaehlte_themen,
                ),
            );
            $query->set('tax_query', $tax_query);
        }
    }
}
add_action('pre_get_posts', 'abfrage_meine_themen');

有人可以告诉我我的错误在哪里吗?我确信有几个🙂

php wordpress user-input taxonomy webarchive
1个回答
0
投票
function abfrage_meine_themen($query) {
    if ($query->is_main_query() && is_user_logged_in()) {
        
        $ausgewaehlte_themen = get_field('meine_themen', 'user_' . get_current_user_id());
                
        if ($ausgewaehlte_themen) {
            $ausgewaehlte_themen = explode(',', $ausgewaehlte_themen);

            $tax_query = array(
                array(
                    'taxonomy' => 'db_themen',
                    'field'    => 'slug',
                    'terms'    => $ausgewaehlte_themen,
                ),
            );

            $query->set('tax_query', $tax_query);
        }
    }
}

add_action('pre_get_posts', 'abfrage_meine_themen');
© www.soinside.com 2019 - 2024. All rights reserved.