首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >add_action pre_term_description与pre_category_description

add_action pre_term_description与pre_category_description
EN

WordPress Development用户
提问于 2018-12-06 07:50:16
回答 1查看 273关注 0票数 0

我试图设置一个默认标签和(不同的)默认类别描述,以防在创建时没有给出。

我已经找到了动作"pre_category_description",但没有对应的标记。我唯一能找到的是"pre_term_description",但它的行为很奇怪。

我在插件中添加了以下代码:

代码语言:javascript
复制
add_action('pre_term_description', 'default_term');
function default_term($description) {
    if ($description == ''){
        $description_new = "default term description";
    } else {
        $description_new = $description;
    }
    error_log("setting term description");
    return $description_new;
}

add_action('pre_category_description', 'default_category');
function default_category($description) {
    if ($description == ''){ // we only replace in case there is a setting and no input
        $description_new = "default category description";
    } else {
        $description_new = $description;
    }
    error_log("setting category description");
    return $description_new;
}

但是,pre_term描述似乎同时针对标记和类别执行,术语description凌驾于类别一,尽管它是最后执行的。

如果我添加了一个新标记,就会得到以下日志条目:

代码语言:javascript
复制
[06-Dec-2018 07:44:54 UTC] setting term description

由此产生的描述是“默认术语描述”。

如果我添加了一个新的类别,我会在这里得到如下信息:

代码语言:javascript
复制
[06-Dec-2018 07:44:54 UTC] setting term description
[06-Dec-2018 07:44:54 UTC] setting category description

由此产生的描述也是“默认术语描述”。

如果编辑的项目是一个类别或标记,那么如何才能使其正常工作呢?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2018-12-06 08:22:35

类别和标记都是术语,这就是为什么您的代码运行了两次。

您需要使用传递给pre_term_description钩子的回调的第二个参数,它告诉您当前应用过滤器的分类:

代码语言:javascript
复制
function wpse_321166_default_term_description( $description, $taxonomy ) {
    if ( $description ) {
        return $description;
    }

    switch ( $taxonomy ) {
        case 'category':
            $description = 'Setting category description';
            break;
        case 'post_tag':
            $description = 'Setting tag description';
            break;
    }

    return $description;
}
add_action( 'pre_term_description', 'wpse_321166_default_term_description', 10, 2);

钩子的文档有点难以资助,因为它有一个变量名,但是您可以看到分类法参数是如何可用的这里

票数 1
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/321166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档