我从这个网站上得到了一些代码,这对我来说非常有用。如果在另一个帖子中找到它。我修改它的目的是在类别编辑区域中添加一个文本框,以便用户可以输入图像的路径。它正在发挥作用。我检查了数据库,确实看到了名为“paradiso\\u category\\u fields\\u option”的选项,该选项是一个名为“image”的数组,并且有一个指向图像的路径。我已经在管理区显示了此图像,但无法将其显示在我的网站正面。我已经试过了
$cat_image = get_option(paradiso_category_fields_option);
<img src="<?php echo $cat_image;?>">
这让我
<img src="Array" />
所以我尝试了foreach循环,但也没有得到任何结果。我不知道我做错了什么。这是数据库中的一行
paradiso_category_fields_option
a:1:{i:7;a:1:{s:5:"image";s:67:"..wp-content/uploads/2010/12/menuItem1.jpg";}}
我缩短了url,以便它更适合此页面。
下面是我正在使用的代码,它使管理区域中的一切工作正常
// 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;
}
编辑-
我离弄清楚这件事越来越近了。我修改了循环。使用此代码的php
<?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 } ?>
这确实返回了它应该返回的两个图像,但它也会多次返回第一个图像。该特定类别中的每个标题一次。是否有办法针对主要类别而不是每个子类别?