我建立了自己的网站插件,它具有自定义元箱内复选框,并在复选框的勾选,那么Button1的将被显示,如果检查BUTTON2将被显示。那为作者。所以,我有帖子列表也为每个岗位上的按钮。因此,使用Ajax我想检查一下,我的文章列表与自定义的列上进行的按钮,复选框,选中从太更新帖子元来检查。
function cruiser_topic_pick_box_callback( $post ) {
$meta = get_post_meta( $post->ID );
$topic_checkbox_value = ( isset( $meta['topic_checkbox_value'][0] ) && '1' === $meta['topic_checkbox_value'][0] ) ? 1 : 0;
wp_nonce_field( 'topic_checkbox_value', 'topic_checkbox_value' );
echo'<input type="checkbox" name="topic_checkbox_value" id="topic_checkbox_value-' . $post->ID . '" value="1" ' . checked( $topic_checkbox_value, 1 ) . ' style="display: none;"/>'
if( $topic_checkbox_value == 0){
echo '<button class="btn btn-sm btn-info" id="click-btn" onclick="checkedFunction(' . $post->ID .')">Pick</button>';
}
else {
echo '<button class="btn btn-sm btn-warning">Picked</button>';
}
}
function cruiser_save_topic_writer( $post_id )
{
$topic_checkbox_value = ( isset( $_POST['topic_checkbox_value'] ) && '1' === $_POST['topic_checkbox_value'] ) ? 1 : 0;
update_post_meta( $post_id, 'topic_checkbox_value', esc_attr( $topic_checkbox_value ) );
}
因此,它已经在门柱内侧工作,但没有对自定义列外邮按钮。所以,当用户点击自定义列的按钮,然后它会自动应改变复选框进行检查。默认情况下,该复选框将被选中。
当用户点击自定义列,则复选框将在门柱内侧检查的按钮,结果Button1的文本将变为BUTTON2我真正想要的是。
jQuery(document).ready( function(){
jQuery('#content').on('click', '.mycheckbox', function(e) {
e.preventDefault();
var post_id = jQuery(this).data( 'id' );
var mycheckbox_id = jQuery(this).val();
jQuery.ajax({
url : ajaxurl,
type : 'post',
data : {
action : 'update_post_topic_writer',
post_id : post_id,
mycheckbox_id : mycheckbox_id
},
success : function( response ) {
console.log(response);
}
});
});
});
PHP
add_action( 'wp_ajax_nopriv_update_post_topic_writer', 'update_post_topic_writer' );
add_action( 'wp_ajax_update_post_topic_writer', 'update_post_topic_writer' );
function update_post_topic_writer() {
if ( isset($_POST) ) {
$mycheckbox_id = $_POST['mycheckbox_id'];
$post_id = $_POST['post_id'];
update_post_meta( $post_id, 'topic_checkbox_value', esc_attr( $mycheckbox_id ) );
$return = array(
'message' => __( 'Saved', 'textdomain' ),
);
wp_send_json_success( $return );
}