如何在wordpress中使用jQuery或其他方法进行永久的背景图像更改

时间:2017-11-03 04:46:22

标签: jquery css wordpress

我使用以下代码让用户通过单击按钮来更改正文背景图像:

<script>
    $(document).ready(function() {
         $(".button1").click(function() {
            $("body").css("background-image", "url('')");
         });
    });
</script>

它确实有效,但是当我点击文章进入文章页面时,正文背景图像会变回上一张图像。 那么如何通过单击按钮进行永久性更改。谢谢。

1 个答案:

答案 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;
} 

如果您需要更多帮助,请告诉我们。

谢谢!