繁体   English   中英

从 wordpress 中的分类法中获取自定义字段值

[英]get custom field value from taxonomy in wordpress

我在类别中创建了一个自定义字段,它成功保存和更新数据,但我想在存档页面中显示自定义字段数据的值,我对此进行了很多搜索,但徒劳无功请帮助我这里是我的代码

创建自定义字段:

add_action ( 'category_add_form_fields', 'extra_field');
add_action ( 'category_edit_form_fields', 'extra_field');
function extra_field($term) {    //check for existing featured ID
    $t_id = $term->term_id;
    $term_meta = get_option( "taxonomy_$t_id");
?>
    <table width="100%" border="0" cellspacing="3" cellpadding="0" style="margin-bottom:20px;">
        <tr>
            <td><strong>Image</strong></td>
        </tr>
        <tr>
            <td><input type="text" size="40" name="term_meta[custom_term_meta]" id="term_meta[custom_term_meta]" value="<?php echo esc_attr( $term_meta['custom_term_meta'] ) ? esc_attr( $term_meta['custom_term_meta'] ) : ''; ?>" /></td>
        </tr>
        <tr>
            <td><p>A quick brown fox jumps over the lazy dog.</p></td>
        </tr>
    </table>
<?php
}

保存/更新数据:

function save_taxonomy_custom_meta( $term_id ) {
    if ( isset( $_POST['term_meta'] ) ) {
        $t_id = $term_id;
        $term_meta = $_POST['term_meta'];

        // Save the option array.
        update_option( "taxonomy_$t_id", $term_meta );
    }
}
add_action( 'edited_category', 'save_taxonomy_custom_meta' ); 
add_action( 'create_category', 'save_taxonomy_custom_meta' );

还有一件事,我可以在 wp_terms 的 db 中创建一个额外的字段,因为它保存在 wp_options 中

用这个

首先,您在分类法页面上获得类别 ID。我想为每个帖子分配一个类别。

   $t_id = $term_id;

然后使用这个获取价值

   get_option( "taxonomy_".$t_id );

我感谢@yatendra 帮助我我从他的回答中得到了一个想法所以它的工作

这是答案

$queried_object = get_queried_object();
$t_id = $queried_object->term_id;

$term_meta =  get_option( "taxonomy_$t_id" );
echo "<img src=".$term_meta['custom_term_meta']." />";

我想自定义我的类别部分,所以使用下面的代码,它运行完美,没有任何问题..

在此处输入图片说明

 function.php





add_action ( 'edit_category_form_fields', function( $tag ){
    $cat_title = get_term_meta( $tag->term_id, '_pagetitle', true ); 

    ?>

    <tr class='form-field'>
        <th scope='row'><label for='cat_page_title'><?php _e('Category Page Title'); ?></label></th>
        <td>
            <input type='text' name='cat_title' id='cat_title' value='<?php echo $cat_title ?>'>
            <p class='description'><?php _e('Title for the Category '); ?></p>
        </td>
    </tr> <?php
});
add_action ( 'edited_category', function() {
    if ( isset( $_POST['cat_title'] ) )
        update_term_meta( $_POST['tag_ID'], '_pagetitle', $_POST['cat_title'] );
});

并在 index.php 页面中调用前端

<?php 
                        $categories = get_categories( array(
                            'orderby' => 'name',
                            'order'   => 'ASC'
                        ) );

                        foreach( $categories as $category ) {
                            if($category->name !="Uncategorized")
                            {

                                $cat_title = get_term_meta( $category->term_id, '_pagetitle', true ); 

                                 echo '
                                 <div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>
                             <div class="col-md-4"><a href="' . get_category_link($category->term_id) . '">' .  $category->description . '</a></div>
                             '; 
                            }

                        } 

                        ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM