List taxonomies with thumbnails

I’ve added an extra field to a taxonomy called “albums” via this function:

add_action( 'albums_edit_form_fields', 'albums_taxonomy_edit_meta_field', 10, 2 );
function save_taxonomy_custom_meta( $term_id ) {
if ( isset( $_POST['term_meta'] ) ) {
    $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 );
}
}

The metadata is saving fine and now I’d like to list or query my taxonomies in a page by displaying next to the taxonomy’s name the value of the metadata attached to every taxonomy (in this case, the image). Anybody knows how to do it ?

Related posts

Leave a Reply

1 comment

  1. How to get the data back

    When you look at your code, then you got get_option( "taxonomy_{$t_id}" ) in it, which actually calls the value from the DB options table. So you should simply replace the $t_id with your actual term id.

    The term ID can be retrieved via

    • get_query_var( 'tag_id' ) for Tags on tag archive pages
    • get_query_var( 'cat' ) for Categories on cat archive pages
    • get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id for custom taxonomy and post format pages.

    Why it is NOT recommended to do this!

    You’re saving one additional entry in your DB options table per tag/term/category/taxon.

    This means with a growing number of taxonomy terms, tags or categories, you’re quickly polluting your table with stuff that doesn’t belong there. Its also not recommended to prefix custom stuff with a generic name like taxonomy_. Try to find this again, when you don’t need it anymore. There’s also a high risk, that you may catch stuff that doesn’t belong to your custom “solution”. Always! use a proper prefix like wpse38656_ for DB entries.