使用cookie可以:
function get_contact_team_page_content ( $content ) {
if (isset($_COOKIE[\'alternative_content\'])) {
$contact_team = get_post( (int)$_COOKIE[\'alternative_content\'] ); // e.g. contact-team page ID
unset($_COOKIE[\'alternative_content\']);
return $contact_team->post_content;
}
return $content;
}
add_filter( \'the_content\', \'get_contact_team_page_content\');
通过这种方式(在主题或插件的functions.php中添加上述代码),您可以过滤
the_content
基于cookie的存在
在您的页面中,可以在单击按钮上附加一个功能,以重新加载页面:
<!-- 158 is your contact-team page ID -->
<button onClick="loadAlternateContent(158)">change</button>
<script>
function loadAlternateContent(post_id){
var date = new Date();
date.setTime( date.getTime() + (1*60*1000) ); //expiration in 1 minute
var expires = "; expires=" + date.toGMTString();
document.cookie = "alternative_content=" + post_id + expires +"; path=/";
window.location.reload();
}
</script>
您可以看到内容是post\\u id 158内容,但url是相同的。
此时,手动重新加载页面时,第一次仍然会显示替代内容,因为cookie已被PHP删除,但它仍然存在于浏览器中。要避免这种行为,您应该具有删除“alternative\\u content”页面上的cookie的功能:
<script>
window.addEventListener("load", function(event) {
document.cookie = \'alternative_content=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;\';
});
</script>