如何筛选自定义分类术语名称、插件和描述?

时间:2021-12-16 作者:Michael

我有几个人和我一起在一个网站上工作,他们需要使用一组非常简单的规则创建自定义分类术语;然而,他们似乎不知道如何做到这一点。所以,我试图创建一个某种过滤器,它会自动将它们的值替换为正确的值。例如,他们应该是这样的:

[name] -> UTA_1234 // type of training + _ + post id of training
[slug] -> uta_1234 // which should be automatic if left blank
[description] -> 1234 // just the post id
看起来很简单,对吧?嗯,他们一直把它们改成小写,用破折号代替下划线,忘记添加描述(

因此,以下是我试图做的不起作用的事情:

/**
 * \'codes\' is the taxonomy slug
 */
add_action( \'created_codes\', \'eri_created_incorrect_access_id\', 10, 2 );
function eri_created_incorrect_access_id( $term_id, $tt_id ) {
    // Catch the term info
    $name = $_POST[\'name\'];
    $slug = $_POST[\'slug\'];
    $desc = isset($_POST[\'description\']) ?? \'\';

    // Replace dashes with underscores, and make name uppercase
    $name = strtoupper(str_replace(\'-\', \'_\', $name));
    $slug = str_replace(\'-\', \'_\', $slug);

    // Check if there is a description
    if (!$desc || $desc == \'\') {

        // Then we split the name and add the post id to the description
        $split_name = explode(\'_\', $name);
        $desc = $split_name[1];
    }

    // Now add the items
    add_term_meta( $term_id, \'name\', $name, true );
    add_term_meta( $term_id, \'slug\', $slug, true );
    add_term_meta( $term_id, \'description\', $desc, true );
}
相同的概念适用于其他自定义字段,但不适用于默认字段

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

默认字段name, slugdescription 不是术语元数据,因此应该使用wp_update_term() 更新这些字段。

那就换掉这三个add_term_meta() 使用:

wp_update_term( $term_id, \'codes\', [
    \'name\'        => $name,
    \'slug\'        => $slug,
    \'description\' => $desc,
] );
此外,不使用$_POST, 我会使用get_term() 获取刚刚创建的术语的详细信息。例如,

$term = get_term( $term_id );

// Catch the term info
$name = $term->name;
$slug = $term->slug;
$desc = $term->description;

相关推荐

如何使用两个不同文件向jQuery AJAX调用发送php变量

我需要从一个php文件(page.php)向另一个jquery文件(sender.js)中的Ajax调用发送一个私人电子邮件地址。此电子邮件地址必须对用户/或网站不可见,直到用户从wp\\U mail获得自动响应,它必须允许用户答复组织。此电子邮件地址因客户想要联系的组织而异(数百个)。我必须在表单之前从组织获取电子邮件地址,因为它是由javascript生成的。(generated\\u mail.js)发件人。js在页面的标题中被很好地调用。php我在(page.php)中尝试了这段代码——一个组织在