wxr_term_meta()
云策文档标注
概述
wxr_term_meta() 函数用于输出给定分类法术语对象的元数据 XML 标签,主要用于 WXR 导出功能。它从数据库中检索术语元数据,并通过过滤器允许选择性跳过某些元数据项。
关键要点
- 函数接受一个 WP_Term 对象作为必需参数,用于指定要导出元数据的术语。
- 通过 SQL 查询从 $wpdb->termmeta 表中获取指定 term_id 的所有元数据行。
- 使用 apply_filters('wxr_export_skip_termmeta', false, $meta_key, $meta) 过滤器,允许开发者控制是否跳过特定元数据的导出。
- 输出格式为 XML 标签,使用 wxr_cdata() 函数包装 meta_key 和 meta_value 以确保数据安全。
- 该函数自 WordPress 4.6.0 版本引入,是 export_wp() 函数的一部分,用于生成 WXR 导出文件。
代码示例
function wxr_term_meta( $term ) {
global $wpdb;
$termmeta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->termmeta WHERE term_id = %d", $term->term_id ) );
foreach ( $termmeta as $meta ) {
if ( ! apply_filters( 'wxr_export_skip_termmeta', false, $meta->meta_key, $meta ) ) {
printf( "tt<wp:termmeta>nttt<wp:meta_key>%s</wp:meta_key>nttt<wp:meta_value>%s</wp:meta_value>ntt</wp:termmeta>n", wxr_cdata( $meta->meta_key ), wxr_cdata( $meta->meta_value ) );
}
}
}注意事项
- 确保传入的 $term 参数是有效的 WP_Term 对象,否则可能导致 SQL 查询错误或数据不完整。
- 过滤器 wxr_export_skip_termmeta 可用于自定义导出逻辑,例如基于 meta_key 排除敏感数据。
- 输出依赖于 wxr_cdata() 函数处理 XML 特殊字符,确保导出的 WXR 文件格式正确。
原文内容
Outputs term meta XML tags for a given term object.
Parameters
$termWP_Termrequired-
Term object.
Source
function wxr_term_meta( $term ) {
global $wpdb;
$termmeta = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->termmeta WHERE term_id = %d", $term->term_id ) );
foreach ( $termmeta as $meta ) {
/**
* Filters whether to selectively skip term meta used for WXR exports.
*
* Returning a truthy value from the filter will skip the current meta
* object from being exported.
*
* @since 4.6.0
*
* @param bool $skip Whether to skip the current piece of term meta. Default false.
* @param string $meta_key Current meta key.
* @param object $meta Current meta object.
*/
if ( ! apply_filters( 'wxr_export_skip_termmeta', false, $meta->meta_key, $meta ) ) {
printf( "tt<wp:termmeta>nttt<wp:meta_key>%s</wp:meta_key>nttt<wp:meta_value>%s</wp:meta_value>ntt</wp:termmeta>n", wxr_cdata( $meta->meta_key ), wxr_cdata( $meta->meta_value ) );
}
}
}
Hooks
- apply_filters( ‘wxr_export_skip_termmeta’, bool $skip, string $meta_key, object $meta )
-
Filters whether to selectively skip term meta used for WXR exports.
Changelog
| Version | Description |
|---|---|
| 4.6.0 | Introduced. |