我found 此代码用于自定义字段添加类别编辑器。
我在类别中添加了自定义字段。
e、 我的领域名称是Hastag,我有一个运动类别。我想调用display Sport的自定义字段(我想调用当前类别的自定义字段)。我该怎么做?
代码:
// the option name
define(\'MY_CATEGORY_FIELDS\', \'my_category_fields_option\');
// your fields (the form)
add_filter(\'edit_category_form\', \'my_category_fields\');
function my_category_fields($tag) {
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);
?>
<table class="form-table">
<tr class="form-field">
<th scope="row" valign="top"><label for="_ce4-categoryTitle">Full Category Title</label></th>
<td><input name="_ce4-categoryTitle" id="_ce4-categoryTitle" type="text" size="40" aria-required="false" value="<?php echo $tag_extra_fields[$tag->term_id][\'my_title\']; ?>" />
<p class="description">The title is optional but will be used in place of the name on the home page category index.</p></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_my_category_fields\');
function update_my_category_fields($term_id) {
if($_POST[\'taxonomy\'] == \'category\'):
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);
$tag_extra_fields[$term_id][\'my_title\'] = strip_tags($_POST[\'_ce4-categoryTitle\']);
update_option(MY_CATEGORY_FIELDS, $tag_extra_fields);
endif;
}
// when a category is removed
add_filter(\'deleted_term_taxonomy\', \'remove_my_category_fields\');
function remove_my_category_fields($term_id) {
if($_POST[\'taxonomy\'] == \'category\'):
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);
unset($tag_extra_fields[$term_id]);
update_option(MY_CATEGORY_FIELDS, $tag_extra_fields);
endif;
}
我正在尝试使用以下代码调用:
<?php
if ( is_category() ) {
$current_cat = get_query_var(\'cat\');
}
echo $tag_extra_fields[$current_cat->term_id][\'my_title\']; ?>
SO网友:s_ha_dum
您正在将额外字段保存到*_options
所以你需要把他们从桌子上拉出来。您可以复制和拼凑现有代码的一些部分来实现这一点。
if ( is_category() ) {
$current_cat = get_query_var(\'cat\');
}
$tag_extra_fields = get_option(MY_CATEGORY_FIELDS);
// var_dump($tag_extra_fields); // debug
if (isset($tag_extra_fields[$current_cat])) {
var_dump($tag_extra_fields[$current_cat]);
}
当然,你不是真的想要
var_dump
. 您需要回显正确的标记。我不知道确切的加价是什么,但这应该让你开始。
例如,将标题输出为<h1>
标签:
echo \'<h1>\'.$tag_extra_field[\'my_title\'].\'</h1>\';
这是假设我已经正确解释了数组结构。如果不起作用,请取消注释
var_dump
行并张贴问题中的输出——注释中的代码格式几乎不存在。