WordPress中如何在functions.php获取当前编辑分类ID并用于函数?
解决WordPress编辑分类时获取分类ID的问题
直接使用$_GET['tag_ID']不可靠,原因是edit_term钩子触发时,HTTP请求的GET参数可能不在当前执行上下文的有效范围内,同时这种写法还存在安全风险。
正确的做法是利用edit_term钩子自带的参数,该钩子会传递三个核心参数:
$term_id: 当前被编辑的分类ID$tt_id: 分类术语的taxonomy ID$taxonomy: 当前分类所属的分类法(比如文章分类对应category)
修改后的代码如下:
function overwrite_ratings_category($term_id, $tt_id, $taxonomy) { // 仅针对文章分类执行,避免影响其他分类法 if ($taxonomy !== 'category') { return; } update_field('field_630dbc7cf3fdd', '432', 'category_' . $term_id); } // 第三个参数3表示要接收钩子传递的3个参数 add_action('edit_term', 'overwrite_ratings_category', 10, 3);
这种方式既可以可靠获取当前编辑的分类ID,又遵循了WordPress的开发规范,同时避免了直接使用$_GET带来的安全隐患。
内容的提问来源于stack exchange,提问作者Wojtek
相关产品推荐
相关产品推荐

