【问题标题】:php - Delete a specific category when deleting a userphp - 删除用户时删除特定类别
【发布时间】:2016-05-21 08:16:19
【问题描述】:

当用户在我的 Wordpress 网站上注册时,我正在使用以下函数创建一个名为“tips_username”的投资组合类别。

add_action('user_register', 'auto_create_traveltip_category');
function auto_create_traveltip_category($user_id) {
    $tip_category_name = 'tips_' . $_POST['user_login'];
    wp_insert_term($tip_category_name, 'portfolio_entries', array(
            'description' => 'Travel Tip for ' . $_POST['user_login'],
            'slug'        => 'tips-' . $_POST['user_login'],
            'parent'      =>  '',
            )
    );
}

这工作正常,但现在我需要一个函数来在我删除用户时自动删除类别,例如从用户列表中。我从https://codex.wordpress.org/Plugin_API/Action_Reference/delete_user 中获得灵感,实现了以下功能:

function delete_traveltip_category_with_user($user_id) {
    global $wpdb;
    $user_obj = get_userdata($user_id);
    $tip_cat_name = 'tips_' . $user_obj->user_login;
    $tip_cat_desc = get_term_by('name', $tip_cat_name, 'portfolio_entries');
    $tip_cat_id = $tip_cat_desc->term_id;
    wp_delete_term( $tip_cat_id, 'portfolio_entries' );
}
add_action( 'delete_user', 'delete_traveltip_category_with_user' );

不幸的是,它不起作用。你能看看并告诉我它有什么问题吗?谢谢!!

【问题讨论】:

  • 你为什么不用这个? <?php wp_delete_category( $cat_ID ) ?> 来源:codex.wordpress.org/Function_Reference/wp_delete_category
  • 感谢您的建议阿德里安!我尝试使用wp_delete_category( $cat_ID ),但它仍然无法正常工作。我试图echo 变量$tip_cat_name 但我只得到“tips_”所以代码的第一部分肯定有问题。
  • 你检查$user_id,通过回显他们,我想你可能没有得到。

标签: php wordpress taxonomy


【解决方案1】:

似乎没有设置user_id 参数。您必须调用 do_action() 函数才能将 user_id 值传递给您的函数。

来源:do_action()

编辑 您必须在模板中调用do_action() 函数(例如delete.php)。

do_action('delete_traveltip_category_with_user', $user_id)

其中 $user_id 是要删除的 id。它将从模板中调用您的自定义函数。 希望对您有所帮助。

【讨论】:

  • get_current_user() 这将返回当前登录的用户,但这在这里没有用,因为这里的用户被删除了。
  • 对!当前用户未设置。你能告诉我如何使用do_action 函数来提取我要删除的用户吗?我应该写do_action (get_userdata($user_id)); 吗?
猜你喜欢
  • 1970-01-01
  • 2019-01-23
  • 2011-06-05
  • 1970-01-01
  • 1970-01-01
  • 2019-03-02
  • 2015-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多