首先,我为我糟糕的英语道歉。我希望你能纠正我。 ^ _ ^
如果没有cookie“cookie_srp”,我有一个必须显示的表单。我用了这段代码:
if(!isset($_COOKIE['cookie_srp'])){
echo 'form code';
}
要创建cookie,请使用此js代码:
function srp_cookie() {
var date = new Date();
date.setTime(date.getTime()+(srp_optime));
var expires = "; expires="+date.toGMTString();
document.cookie = 'cookie_srp=set;'+expires+"; path=/";
document.getElementById('srp_slider').style.display = 'none';
}
如果禁用插件“wp super cache”,一切正常。 相反,如果启用了插件“wp super cache”,除了第一个访问者之外,每个人都可以看到可视化。
我找到了这些解决方案,但不知道如何应用它们,我不太清楚ajax语言。
http://omninoggin.com/wordpress-posts/make-any-plugin-work-with-wp-super-cache/ http://z9.io/2008/11/01/make-your-wordpress-plugin-talk-ajax/
答案 0 :(得分:1)
解决了,这是一个有效的方法。
<?php
/*
Plugin Name: Hello World
Plugin URI: #
Description: A simple hello world plugin
Version: 0.1
Author: #
Author URI: #
*/
function omni_ts_and_ref() {
echo time();
echo '<br/>';
echo $_POST['omni_ref'];
}
function omni_request_handler() {
if ( isset($_POST['srp_action']) && $_POST['srp_action'] == 'srp_value' ) {
omni_ts_and_ref();
exit();
}
}
add_action('init', 'omni_request_handler');
function omni_display() {
echo '
<div id="omni_div"></div>
<script>
jQuery(document).ready(function($){
//document.cookie = "TR_LNG=something";
if (document.cookie.indexOf("TR_LNG=") >= 0) {
var co_test = "yes";
}else{
var co_test = "no";
}
$.ajax({
type : "POST",
url : "index.php",
data : { srp_action : "srp_value", omni_ref : co_test },
success : function(response){
// the server has finished executing PHP and has returned something, so display it!
$("#omni_div").html(response);
}
});
});
</script>
';
}
add_action('wp_footer', 'omni_display');
?>
在函数omni_ts_and_ref(){你可以把不会被缓存的php代码。