help using get_option

I got some code from this site which is going to work great for me. If ound it in another post. What I have modified it to do is add a text box in the category edit area so that the user can input the path to an image. It is working. I have checked the database and I do see the option called “paradiso_category_fields_option” in that option is an array entitled “image” and there is a path to an image. I have displayed this image in the admin area but have not been able to get it on the front of my site. I have tried like so

 $cat_image = get_option(paradiso_category_fields_option);
 <img src="<?php echo $cat_image;?>">

this gives me

Read More
 <img src="Array" />

so I tried a foreach loop and get nothing that way either. Not sure what I am doing wrong here. Here is the line from the database

 paradiso_category_fields_option
 a:1:{i:7;a:1:{s:5:"image";s:67:"..wp-content/uploads/2010/12/menuItem1.jpg";}}

I shortened the url so that it would fit better on this page.

here is the code I am using that make everything work in the admin area

 // the option name
 define('PARADISO_CATEGORY_FIELDS', 'paradiso_category_fields_option');

 // your fields (the form)
 add_filter('edit_category_form', 'PARADISO_CATEGORY_FIELDS');
 function paradiso_category_fields($tag) {
 $tag_extra_fields = get_option(PARADISO_CATEGORY_FIELDS);

?>

 <table class="form-table">
    <tr class="form-field">
 <th scope="row" valign="top"><label for="_category_image">Full URL to image</label>    </th>
 <td><input name="_category_image" id="_category_image" type="text" size="40"      aria-required="false" value="<?php echo $tag_extra_fields[$tag->term_id]['image']; ?>" />
 <p class="description">This needs the full path to the image you want to use.      Example, <br  />http://www.mysite.com/wp-content/uploads/myImage.jpg.</p>
 <img src="<?php echo $tag_extra_fields[$tag->term_id]['image'];  ?>" alt=""  />
        </td>
    </tr>
 </table>
<?php
 }


 // when the form gets submitted, and the category gets updated (in your case the      option will get updated with the values of your custom fields above
 add_filter('edited_terms', 'update_paradiso_category_fields');
 function update_paradiso_category_fields($term_id) {
   if($_POST['taxonomy'] == 'category'):
    $tag_extra_fields = get_option(PARADISO_CATEGORY_FIELDS);
    $tag_extra_fields[$term_id]['image'] = strip_tags($_POST['_category_image']);
    update_option(PARADISO_CATEGORY_FIELDS, $tag_extra_fields);
   endif;
 }


 // when a category is removed
 add_filter('deleted_term_taxonomy', 'remove_paradiso_category_fields');
 function remove_paradiso_category_fields($term_id) {
   if($_POST['taxonomy'] == 'category'):
     $tag_extra_fields = get_option(PARADISO_CATEGORY_FIELDS);
     unset($tag_extra_fields[$term_id]);
     update_option(PARADISO_CATEGORY_FIELDS, $tag_extra_fields);
   endif;
 }

EDIT –

I have gotten closer to figuring this out. I have modified loop.php with this code

 <?php foreach ((get_the_category()) as $category){
 $cat_image = get_option('paradiso_category_fields_option'); ?>
 <img src="<?php echo $cat_image[$category->cat_ID ]['image']; ?>" />
 <?php } ?>

So that does return the two images it is suppose to but it also returns the first image a few more times. Once for each title in that specific category. Is there a way to target the main category instead of each child category?

Related posts

Leave a Reply

1 comment

  1. Remember you need the get_option parameter in quotes, like this:

    $option = get_option('paradiso_category_fields_option');
    

    and to get the img url out of that database option you presented it would be:

    echo $cat_image[7]['image'];