wordpress 如何在页面打开时 提前显示一个页面 询问是否成年?
发布网友
发布时间:2022-04-26 08:20
我来回答
共1个回答
热心网友
时间:2022-04-21 19:53
如下,有问题追问或本人网站留言。
有时候我们的博客需要分享一些羞羞的内容,按惯例及服务器所在国家法律要求,是必须要在浏览前显示“*内容警告”的,以提示方可内容可能不适宜未成年人或引起不适。对于wordpress来说就很简单,简单的一段代码就能实现。
要实现这样的功能,我们需要wordpress在wp_loaded的时候判断指定cookie是否存在,以确定是否是该浏览者是否已经浏览警告页面。如果该cookie不存在则显示警告页面,并且在浏览者点击确认后写入cookie。
代码如下:
if(class_exists('AltContentsWarning')) return;
class AltContentsWarning{
var $path;
function __construct(){
add_action('wp_loaded',array($this,'isAlt'));
$path= parse_url(untrailingslashit(home_url()))['path'] === NULL ? parse_url($_SERVER['REQUEST_URI'] )['path'] :
explode(parse_url(untrailingslashit(home_url()))['path'],parse_url($_SERVER['REQUEST_URI'] )['path'])[0];
}
function isAlt(){
if(is_user_logged_in() === true) return;
if(!isset($_COOKIE['isAlt']) || $_COOKIE['isAlt'] != 'yes'){
if($_POST['isAlt'] == 'yes'){
if(setcookie('isAlt','yes',time()+3600*24) === true){
echo 'success';
die;
}
}
else{
$this->show_warning();
die();
}
}
return;
}
private function show_warning(){
?>
<html>
<head>
<title>*内容警告 - <?php bloginfo('name');?></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script type="text/javascript" src="<?php echo home_url('/wp-includes/js/jquery/jquery.js'); ?>"></script>
</head>
<style type="text/css">
a{text-decoration:none;color:#0000FF}
a:hover{text-decoration:underline;}
</style>
<body bgcolor="#FFFFFF" text="#000000">
<p align="center"><font color="#FF0000"><b>警告 / WARNING </b><br>
</font><br>
本物品内容可能令人反感;不可将本物品内容派发,传阅,出售,出租,交给<br>
或出借予年龄未满 18 岁的人士出示,播放或播映。<br>
<br>
<font size="1" face="Verdana">This article contains material which may offernd and may not be
distributed, circulated, sold, hired, given, lent, shown, <br>
played or projected to a person under the age of 18 years. All models are 18 or
older. </font><br>
</p>
<p align="center">
<b>
<font size="7" face="Verdana">
<a href="javascript::" id="confirm">__ 满 18 岁,
请按此 __</a></font></b><BR><BR>
<a href="javascript::" id="close">退出浏览</a>
</p>
<script>
jQuery(document).ready(function($) {
$("#confirm").click(function(){
$.post("",{isAlt:'yes'},function(result){
if(result == 'success'){
if (getCookie('isAlt') != false){
location.reload(true);
}else{
alert('Cookie写入失败!');
location.reload(false);
}
}
});
});
$("#close").click(function(){
if(window.history.go(-1) == undefined){
window.location.href="about:blank";
}
else{
window.history.go(-1);
}
});
});
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1)
{
c_start=c_start + c_name.length+1
c_end=document.cookie.indexOf(";",c_start)
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end))
}
}
return false
}
</script>
</body></html>
<?php
}
}
new AltContentsWarning();
追问这段代码加到哪儿呢?