如何在 Wordpress 中为每个用户设置唯一的默认帖子类别?

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

我希望能够在我的 Wordpress 站点中创建一些用户,其中 每个用户 per default 在发布新帖子时发布到不同的指定类别

我试图弄清楚如何做到这一点,但既没有找到明显的 php 片段也没有找到可以帮助我解决这个问题的插件。

你对此有什么想法或解决方案吗?

两个例子:

  1. 当“Frida”登录并发布帖子时,我希望将其发布到“化妆与生活”,而无需她选择该类别。 所以用户Frida的默认分类是“彩妆生活”

  2. 当“Michael”发布帖子时,我希望将其发布到“Car and fun”类别,而无需他选择。 所以用户 Michael 的默认类别是“Car and fun”

它是否存在某种我可以用于此的分类法 php 片段,或者与用户 ID 和帖子类别 ID 相关的东西?

例如,我可以使用这样的 php 片段吗?

“Frida”是用户 ID 2, “迈克尔”是用户 ID 3, “妆容生活”是catID 3, “车与乐”是catID 9

If userID = "2", then post category is catID = "3"
If userID = "3", then post category is catID = "9"
etc

我在 StackOverflow 和 Google 中都进行了搜索,但没有找到解决方案。我可能会使用错误的搜索查询/措辞。

这是我最接近的解决方案,但我真的不明白要调整什么才能让它像我想要的那样工作。我既不精通 php 也不精通 WP 的代码。 https://wordpress.stackexchange.com/questions/89057/set-default-category-to-username

那里的代码:

add_action('admin_init','set_user_default_cat_wpa89057');
function set_user_default_cat_wpa89057(){
    global $current_user; 
    if ( isset($current_user) ) {
        update_option( 'default_category',  $current_user->user_login);
    }
}

我也找到了这个

function hf_Function(){
    $user_ID = get_current_user_id(); 

    if ($user_ID == 0) {
        // The user ID is 0, therefore the current user is not logged in
        return; // escape this function, without making any changes
    }

    // Run your SQL queries here (using WordPress DB class)
    global $wpdb;
    // $wpdb->query($sql);
}
add_action('init', 'hf_Function');

我怎样才能最好地使用这些,或者得到我想要的工作?

我可能完全在这里屠杀代码,但我在做些什么吗?

知道编码的人,我应该如何编写这段代码才能按预期工作,我应该把它放在哪里?

add_action('admin_init','set_user_default_cat_wpa89057');
function set_user_default_cat_wpa89057(){
    $user_ID = get_current_user_id(); 

    if ($user_ID == 0) {
        // The user ID is 0, therefore the current user is not logged in
        return; // escape this function, without making any changes
    }
    if ($user_ID == 2) {
        update_option( 'default_category',  '3';
    }
    if ($user_ID == 3) {
        update_option( 'default_category',  '9';
    }

}

谢谢你的帮助。这超出了我的知识范围,但至少我尝试理解:-)

附加代码(添加到评论中,但没有以易于阅读的方式显示):

function set_default_category_for_users( $default_category, $post ) {
    $user_id = get_current_user_id();
    if ( $user_id === 3 ) {
        return 7;
    } elseif ( $user_id === 2 ) {
        return 5;
    } else {
        return $default_category;
    }
}
add_filter( 'default_category', 'set_default_category_for_users', 10, 2 );
php wordpress
© www.soinside.com 2019 - 2024. All rights reserved.