默认WordPress分类(标记)-如何向表单添加自定义域并将其保存到数据库

时间:2017-05-29 作者:valentina lepcevic

这会将该字段添加到添加新标记表单中

function tag_add_form_fields ( $taxonomy ){
    ?>
    <div class="form-field term-colorpicker-wrap">
        <label for="term-colorpicker">Category Color</label>
        <input type="color" name="_tag_color" value="#737373" class="colorpicker" id="term-colorpicker" />
        <p>This is the field description where you can tell the user how the color is used in the theme.</p>
    </div>
        <?php 
}
add_action(\'add_tag_form_fields\',\'tag_add_form_fields\');
这会将字段添加到编辑标记表单中

function tag_edit_form_fields ( $term ) {

    $color = get_term_meta( $term->term_id, \'_tag_color\', true );
    $color = ( ! empty( $color ) ) ? "#{$color}" : \'#737373\';

?>
    <tr class="form-field term-colorpicker-wrap">
        <th scope="row"><label for="term-colorpicker">Severity Color: <?php echo $color; ?></label></th>
        <td>
            <input type="color" name="_tag_color" value=" <?php echo $color; ?>" class="colorpicker" id="term-colorpicker" />
            <p class="description">This is the field description where you can tell the user how the color is used in the theme.</p>
        </td>
    </tr>

    <?php
 }
add_action(\'edit_tag_form_fields\',\'tag_edit_form_fields\');
这是从数据库保存和提取数据的非工作部件

function save_termmeta_tag( $term_id ) {

     // Save term color if possible
    if( isset( $_POST[\'_tag_color\'] ) && ! empty( $_POST[\'_tag_color\'] ) ) {
        update_term_meta( $term_id, \'_tag_color\', sanitize_hex_color_no_hash( $_POST[\'_tag_color\'] ) );
    } else {
        delete_term_meta( $term_id, \'_tag_color\' );
    }

}

add_action( \'created_tag\', \'save_termmeta_tag\' );
add_action( \'edited_tag\',  \'save_termmeta_tag\' ); 
我想动作挂钩是不对的。

值得一提的是,代码最初来自另一个发布的问题。我只是调整了一下以满足我的需要。

Adding Colorpicker Field To Category

2 个回复
SO网友:Ben

用于更新和保存使用add_action( \'edit_term\', \'save_termmeta_tag\' );

SO网友:David Salcer

实际上我现在也想用它。基本上,这是互联网上唯一一个真正使用标签的地方。

我发现它有一些问题,设法编辑了它,现在它对我有用:

此处您还将空格字符保存到值

    <input type="color" name="_tag_color" value=" <?php echo $color; ?>" 
->已删除空格

<input type="color" name="_tag_color" value=" <?php echo $color; ?>"
即使在Ben的帮助下,我也发现了这一点。保存仍然不起作用,不知何故,您的默认颜色存在。。我很幸运地发现了这一点,但我现在不知道为什么,消毒方法把这一点搞砸了,导致无法保存它。

sanitize\\u hex\\u color\\u no\\u hash()

因此,基本上,如果我将其移除,它就会开始正常工作。

function save_termmeta_tag( $term_id ) {

    // Save term color if possible
    if( isset( $_POST[\'_tag_color\'] ) && ! empty( $_POST[\'_tag_color\'] ) ) {
        update_term_meta( $term_id, \'_tag_color\',  $_POST[\'_tag_color\'] );
    } else {
        delete_term_meta( $term_id, \'_tag_color\' );
    }

}
所以不需要add_action( \'edit_term\', \'save_termmeta_tag\' );

UPDATE后来我发现,如果在使用其他方法之前对其进行消毒,也会有所帮助

 // Save term color if possible
if( isset( $_POST[\'_tag_color\'] ) && ! empty( $_POST[\'_tag_color\'] ) ) {
    $sanitized_color = sanitize_hex_color_no_hash($_POST[\'_tag_color\']);
    update_term_meta( $term_id, \'_tag_color\', $sanitized_color );
} else {
    delete_term_meta( $term_id, \'_tag_color\' );
}

结束

相关推荐

Remove P tags from images

我使用的是WordPress 4.2.2,每次我向wysiwyg添加图像时,它都会将输出的图像包装在段落标记中。我需要去掉这些标签。我在网上找到的所有东西都是从2011年开始的,而且似乎都不起作用。我试着把东西放在函数中。php类:function filter_ptags_on_images($content){ return preg_replace(\'/<p>\\s*(<a .*>)?\\s*(<img .* \\/>)\\s*(<\\/a&g