我使用以下代码让用户通过单击按钮来更改正文背景图像:
<script>
$(document).ready(function() {
$(".button1").click(function() {
$("body").css("background-image", "url('')");
});
});
</script>
它确实有效,但是当我点击文章进入文章页面时,正文背景图像会变回上一张图像。 那么如何通过单击按钮进行永久性更改。谢谢。
答案 0 :(得分:0)
您需要做的是,如果用户点击了按钮以更改为背景图像,则需要在会话/ cookie中存储标志变量以进行检查。
当您重新加载页面或重定向到其他页面时,您需要获取该会话/ cookie值,并根据其值来设置<body>
的背景图片。
以下是您可以获得想要的内容的代码:
jQuery代码:
jQuery(document).ready(function() {
call_Ajax_get_set_session('get');
jQuery(".button1").click(function() {
call_Ajax_get_set_session('set');
});
});
function call_Ajax_get_set_session(value){
data = {
action : 'setBgImage',
method : value
};
// first parameter will be the ajax url.
jQuery.post('<?php echo admin_url( 'admin-ajax.php' );?>', data, function(response) {
response = jQuery.parseJSON(response);
if(response.success == '1'){
jQuery("body").css("background-image", "url('')");
}
});
}
活动主题的Function.php文件中的PHPCode:
add_action( 'wp_ajax_nopriv_setBgImage', 'setBgImage' );
add_action( 'wp_ajax_setBgImage', 'setBgImage' );
function setBgImage() {
$method = $_POST['method'];
if(session_id() == '') // check session has already start or not
{
session_start();
}
if($method == 'set'){
$_SESSION['setBgImage'] = '1';
echo json_encode(array('success' => 1));
exit;
}
else if($method == 'get'){
if(isset($_SESSION['setBgImage']) && $_SESSION['setBgImage'] == '1'){
echo json_encode(array('success' => 1));
exit;
}
else{
echo json_encode(array('success' => 0));
exit;
}
}
echo json_encode(array('success' => 0));
exit;
}
如果您需要更多帮助,请告诉我们。
谢谢!