为什么我无法访问自定义分类元数据?

时间:2013-12-15 作者:JMB

我正在尝试访问所有自定义分类术语的自定义分类元数据。元数据存储在如下选项中:

$t_id = $term_id;
    $term_meta = get_option( "taxonomy_$t_id" );
    $cat_keys = array_keys( $_POST[\'term_meta\'] );
    foreach ( $cat_keys as $key ) {
        if ( isset ( $_POST[\'term_meta\'][$key] ) ) {
            $term_meta[$key] = $_POST[\'term_meta\'][$key];
        }
    }
    // Save the option array.
    update_option( "taxonomy_$t_id", $term_meta );
在尝试获取每个元数据字段时,我编写了以下代码,但我的数组$term_meta 完全为空。呼应$t_id 但是,成功返回所有ID。

<?php
$taxonomy = \'hhie_artists\';
$args = array(
\'hide_empty\' => 0
);
$terms = get_terms( $taxonomy, $args );
foreach( $terms as $term ) {
    $empty_terms[] = $term;
    $t_id = $term->term_id;
    $term_meta = get_option( \'taxonomy_\' . $t_id );
    print_r( $term_meta );
    echo $t_id;
    echo "<br />";
}
?>
例如,数组中的一个键是$term_meta[\'release_date_meta\']EDIT: 在页面模板上使用此选项进行测试。

1 个回复
SO网友:Nicolai Grossherr

第一个代码块表明您正在将数据保存到名为taxonomy_$t_id, 但你想得到一个名为taxonomy_123 在第二个代码中,或者不管实际的术语ID是什么。因此,您可能会得到一个返回值false, 这将是get_option(). 你调试过这个吗?您确定已按预期方式保存元数据吗?

// term ID
$t_id = $term->term_id;
// overly long variable name for the option for demonstration purposes
$term_meta_data_options_name = \'taxonomy_\' . $t_id;

// get option with the defined term meta data options name
$term_meta = get_option( $term_meta_data_options_name );

// add/update option with the defined term meta data options name
update_option( $term_meta_data_options_name );

结束

相关推荐