AJAX类别添加不会更新列表表格自定义列

时间:2017-09-25 作者:Claudio King

我在管理类别管理页面中添加了一个自定义列。

代码是广义的,因为在我的例子中更具体,但含义是相同的

function mytheme_custom_column( $columns )
{
    $columns[\'my_column\'] = \'My custom column\';
    return $columns;
}
add_filter( \'manage_edit-category_columns\' , \'mytheme_custom_column\' );



function mytheme_custom_column_fill( $content, $column_name, $term_id )
{
    if ( \'my_column\' == $column_name ) {
        // Get content using $term_id
        $content = mytheme_get_custom_field( $term_id );

        if( empty( $content ) )
        {
            // If column is empty, put a minus
            $content = \'-\';
        }
    }
    return $content;
}
add_filter( \'manage_category_custom_column\', \'mytheme_custom_column_fill\', 10, 3 );
然后,我在类别创建表单中添加了一个新的自定义字段,并以这种方式保存它。

/*
* Saves category custom field on category create
*
*/
function mytheme_save_custom_field( $term_id ){
    if( isset( $_POST[\'my_custom_field\'] ) ){
        mytheme_save_custom_field( $_POST[\'my_custom_field\'], $term_id );
    }

}
add_action( \'created_category\', \'mytheme_save_custom_field\'); 
创建类别时,Wordpress使用Ajax发送表单,并自动将新的类别行添加到表中。

自定义字段应在创建后显示在表中,但始终打印一个“-”,如“自定义字段为空”,但当我重新加载页面时,字段显示正确。

我认为问题在于这个钩子,它在发送ajax响应后触发,但不确定。

add_action( \'created_category\', \'mytheme_save_custom_field\'); 

1 个回复
SO网友:Faysal Mahamud

代码功能齐全,经过测试。在函数中添加此项。php并检查。我给你举了一个例子,使用添加和编辑类别中的复选框。

function mytheme_custom_column( $columns )
{
    $columns[\'my_column\'] = \'My custom column\';
    return $columns;
}
add_filter( \'manage_edit-category_columns\' , \'mytheme_custom_column\' );




function mytheme_custom_column_fill( $content, $column_name, $term_id )
{

    if ( \'my_column\' == $column_name ) {
        // Get content using $term_id
        $content = get_term_meta( $term_id, \'show_category\', true );
// be specific your content gets correct conent
        if( !empty( $content ) )
        {
            //$content = \'your custom field content here\';
            return $content;
        }else{
          $content = \'-\';
          return $content;
        }
    }
}
add_filter( \'manage_category_custom_column\', \'mytheme_custom_column_fill\', 10, 3 );


// Add new term page
function mytheme_add_meta_fields( $taxonomy ) { ?>
    <div class="form-field term-group">
        <label for="show_category">
          <?php _e( \'Show Category\', \'codilight-lite\' ); ?> <input type="checkbox" id="show_category" name="show_category" value="yes" />
        </label>
    </div><?php
}
add_action( \'category_add_form_fields\', \'mytheme_add_meta_fields\', 10, 2 );

// Edit term page
function mytheme_edit_meta_fields( $term, $taxonomy ) {
    $show_category = get_term_meta( $term->term_id, \'show_category\', true ); ?>

    <tr class="form-field term-group-wrap">
        <th scope="row">
            <label for="show_category"><?php _e( \'Show Category\', \'codilight-lite\' ); ?></label>
        </th>
        <td>
            <input type="checkbox" id="show_category" name="show_category" value="yes" <?php echo ( $show_category ) ? checked( $show_category, \'yes\' ) : \'\'; ?>/>
        </td>
    </tr><?php
}
add_action( \'category_edit_form_fields\', \'mytheme_edit_meta_fields\', 10, 2 );

// Save custom meta
function mytheme_save_custom_field( $term_id, $tag_id ) {
    if ( isset( $_POST[ \'show_category\' ] ) ) {
        update_term_meta( $term_id, \'show_category\', \'yes\' );
    } else {
        update_term_meta( $term_id, \'show_category\', \'\' );
    }
}
add_action( \'created_category\', \'mytheme_save_custom_field\', 10, 2 );
add_action( \'edited_category\', \'mytheme_save_custom_field\', 10, 2 );

结束

相关推荐

AJAX在插件php文件中调用

我正在开发一个名为Ajaxso的插件,我在插件中做了一些事情,并将js列在js文件的主文件中,在数据部分添加操作,然后将该数据称为另一个。php文件add same action name函数add add\\u action,但在调用Ajax之后,没有定义错误add\\u action,因此请建议我如何在插件中调用该Ajax。===js file == var ajaxurl = myScript.ajaxurl; (Custom File Ajax URL) jQuery(\"#idF