我正在尝试使用“管理”菜单上“自定义页面”中的按钮更新我的特定页面。我尝试使用ajax在updatepost中执行函数。php但是页面的内容没有变化。有人能帮我吗?
这是按钮的代码
<div>
<input id="btn_news" class="add_content" type="button" class="button-primary" value="<?php esc_attr_e(\'Save News\', \'mytheme\'); ?>" />
<input id="btn_aboutus" class="add_content" type="button" class="button-primary" value="<?php esc_attr_e(\'Save About Us\', \'mytheme\'); ?>" />
<input id="btn_contact" class="add_content" type="button" class="button-primary" value="<?php esc_attr_e(\'Save Contact\', \'mytheme\'); ?>" />
</div>
此代码用于ajax
$(".add_content").click(function(){
var BtnValue = $(this).val();
$.ajax({
type : \'POST\',
url : templateUrl+\'/includes/updatepost.php\',
data:{action:\'BtnValue\'},
success:function(html) {
alert(\'success\');
}
});
});
这是我的更新日志。php
<?php
if (isset($_POST[\'action\'])) {
switch ($_POST[\'action\']) {
case \'Save News\':
add_content(303);
break;
case \'Save About Us\':
add_content(75);
break;
case \'Save Contact\':
add_content(30);
break;
}
}
function add_content($id_num){
$update_page = array(
\'ID\' => $id_num,
\'post_content\' => \'This is the updated content.\',
);
wp_update_post( $update_page );
}
?>
感谢您的时间和帮助。
最合适的回答,由SO网友:TheDeadMedic 整理而成
不,不,不!Never 直接发布或链接到自定义PHP文件-不会加载WordPress,而手动加载它意味着对文件层次结构进行大量假设。
使用ajax API, 正是由于这个原因:
$.ajax({
url: "<?php echo esc_js( admin_url( \'admin-ajax.php\' ) ) ?>",
type: "POST",
data: {
action: "update_button",
button: $( this ).val()
}
});
对于您的PHP:
function wpse_227396_update_button() {
switch ( filter_input( INPUT_POST, \'button\' ) ) {
case \'Save News\':
add_content(303);
break;
case \'Save About Us\':
add_content(75);
break;
case \'Save Contact\':
add_content(30);
break;
}
}
add_action( \'wp_ajax_nopriv_update_button\', \'wpse_227396_update_button\' );
add_action( \'wp_ajax_update_button\', \'wpse_227396_update_button\' );