wordpress - 获取术语元中具有特定选项的所有标签
问题描述
我的一些标签有一些自定义term meta
,我正在用这个函数保存那个元:
add_action ( 'edit_term', 'save_termmeta_tag');
// save extra category extra fields callback function
function save_termmeta_tag( $term_id ) {
if ( isset( $_POST['Tag_meta'] ) ) {
$t_id = $term_id;
$tag_meta = get_option( "tag_$t_id");
$tag_keys = array_keys($_POST['Tag_meta']);
foreach ($tag_keys as $key){
if (isset($_POST['Tag_meta'][$key])){
$tag_meta[$key] = $_POST['Tag_meta'][$key];
}
}
//save the option array
update_option( "tag_$t_id", $tag_meta );
}
}
现在,我想获取所有带有特定选项的标签,例如“ channel
”。
这可能吗,怎么做?
解决方案
function get_term_with_option($opt) {
$terms = array();
// load all options
$options = wp_load_alloptions();
foreach($options as $k=>$v) {
// find keys with prefix `tag_`
if (strpos($k, 'tag_') === 0) {
$v = maybe_unserialize($v);
// check if has a meta key $opt
if (is_array($v) && array_key_exists($opt, $v)) {
$term = get_term(intval(str_replace('tag_', '', $k)));
if (!is_wp_error($term)) {
$terms[] = $term;
}
}
}
}
return $terms;
}
print_r(get_term_with_option('channel'));
推荐阅读
- python - 为什么我的市价单在使用 Coinbase API 时没有通过?我仍然在美元钱包中看到我的资金。对不起,我对这个 API 很陌生
- c# - 如何检查 UWP 应用程序是否刚刚更新?
- javascript - node.js 按键排序JSON,日期格式
- javascript - 更改在 Github Pages 中托管网站的帐户
- java - 在 MacOS 上调整 Java 内部框架的大小
- linux - 当安装在 docker 和 windows 子系统 for linux 中时,'~' 扩展到哪里?
- reactjs - Uncaught (in promise) TypeError: Cannot read property 'fields' of undefined (React + Contentful)
- javascript - 如何在 PHP 中的 JavaScript 对象中使用 base64_decode()?
- perl - perl 以人类可读的方式打印十六进制
- javascript - 如何在 Deno 中下载大文件?