在 wordpress 版本 < 4.4 上获取术语元

Get term meta on wordpress version < 4.4

我写了一些脚本来将自定义图像字段添加到我注册的自定义分类中。

现在的问题是我正在尝试获取术语元数据,顺便说一句,因为 add_term_meta 功能是从 wordpress 4.4 版引入的,所以我无法使用此功能。

现在我在网站上使用 wordpress 4.2 版,因为那里有一堆自定义插件和脚本。

我必须使用哪个函数来获取 4.2 版的术语元数据?

** 编辑 **

add_action( 'created_hr50_amenity', 'save_hr50_amenity_image', 10, 2 );

function save_hr50_amenity_image ( $term_id, $tt_id ) {
   if( isset( $_POST['hr50_amenity-image-id'] ) && '' !== $_POST['hr50_amenity-image-id'] ){
     $image = $_POST['hr50_amenity-image-id'];

     // ** add_term_meta ** WHAT CAN I USE INSTEAD OF THIS FUNCTION? **
     add_term_meta( $term_id, 'hr50_amenity-image-id', $image, true );

     // var_dump(get_term_meta( $term_id, 'hr50_amenity-image-id'));
   }
}

您不能只复制 add_term_meta 并将其命名为 compat_add_term_meta 并与 4.2 WP 一起使用吗?

您在这里拥有完整的功能: https://developer.wordpress.org/reference/functions/add_term_meta/

您可以使用条件句:

if ( version_compare( $GLOBALS['wp_version'], '4.2', '<=' ) ) {
    compat_add_term_meta();
} else {
    add_term_meta();
}

因此它在两种情况下都有效。

请记住,您可能还必须添加 wp_term_is_shared,除此之外还有所有其他功能。

也不是 100% 确定,但请检查数据库架构的外观。也有可能缺少某些表(术语元),因此也应该创建这些表(可以通过 $wpdb class 完成)。