一些博主可能处于一些特殊的需要,要对初次的网站访问者提供一个18成年警告,那么这个代码就有用了,由于我这用的是php生成的提醒内容,所以今天又加上了一个user_agent判断,不对搜索引擎的抓取行为显示提醒,避免搜索引擎误判网页内容。
- 代码来源:详情
下载本文提供的文件,放在你主题目录下的inc
文件夹下,如果没有就创建一个,再在主题的 functions.php
中的<?php
下添加以下代码即可:
include (TEMPLATEPATH . '/inc/18.php');

提示:
如果许要将对首页的判断改为对一些指定分类或者页面的话,可以 更改文件中的if (is_user_logged_in() === true)
这个判断条件
页面的过期时间是30天,可根据自己的需要在文件的代码提示下进行更改
<?php
/**
* 原文来源:https://www.npc.ink/6795.html
* **/
//成人询问
class AdultContentsWarning {
function __construct() {
if (isset($_COOKIE[‘isAdult’]) && $_COOKIE[‘isAdult’] == ‘yes’) return;
if (stripos($_SERVER[‘PHP_SELF’],’/wp-admin/’) !== false || stripos($_SERVER[‘PHP_SELF’],’/wp-login.php’) !== false) return;
$spiders = array(‘baidu’,’sogou’,’spider’,’yodao’);
foreach($spiders as $spiderName){
if(stripos($_SERVER[‘HTTP_USER_AGENT’],$spiderName) !== false) return;
}
add_action(‘wp_loaded’, array($this, ‘checkAdult’));
}
function checkAdult() {
if (is_user_logged_in() === true) return;
$this->show_warning();
die();
}
private function show_warning() {
?>
<html>
<head>
<title>成人内容警告 – <?php bloginfo(‘name’); ?></title>
<meta charset=”UTF-8″>
<meta http-equiv=”pragma” content=”no-cache”>
<meta http-equiv=”Cache-Control” content=”no-cache, no-store, must-revalidate”>
<meta http-equiv=”Pragma” content=”no-cache”>
<meta http-equiv=”expires” content=”Wed, 26 Feb 1997 08:21:57 GMT”>
<meta http-equiv=”expires” content=”0″>
<meta name=”renderer” content=”webkit”>
<meta name=”applicable-device” content=”pc,mobile”>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″>
<meta name=”viewport” content=”width=device-width,initial-scale=1″>
<script type=”text/javascript” src=”<?php echo home_url(‘/wp-includes/js/jquery/jquery.js’); ?>”></script><!–引入wordpress的jquery–>
</head>
<style type=”text/css”>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-weight: 300;
}
body {
font-family: ‘Source Sans Pro’, sans-serif;
color: white;
font-weight: 300;
}
body ::-webkit-input-placeholder {
/* WebKit browsers */
font-family: ‘Source Sans Pro’, sans-serif;
color: white;
font-weight: 300;
}
body :-moz-placeholder {
/* Mozilla Firefox 4 to 18 */
font-family: ‘Source Sans Pro’, sans-serif;
color: white;
opacity: 1;
font-weight: 300;
}
body ::-moz-placeholder {
/* Mozilla Firefox 19+ */
font-family: ‘Source Sans Pro’, sans-serif;
color: white;
opacity: 1;
font-weight: 300;
}
body :-ms-input-placeholder {
/* Internet Explorer 10+ */
font-family: ‘Source Sans Pro’, sans-serif;
color: white;
font-weight: 300;
}
p {
padding-bottom: 1em;
}
.wrapper {
background: #50a3a2;
background: -webkit-linear-gradient(top left, #50a3a2 0%, #53e3a6 100%);
background: linear-gradient(to bottom right, #50a3a2 0%, #53e3a6 100%);
opacity: 0.8;
position: absolute;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
}
.wrapper.form-success .container h1 {
-webkit-transform: translateY(85px);
-ms-transform: translateY(85px);
transform: translateY(85px);
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 80px 0;
height: 400px;
text-align: center;
}
.container h1 {
font-size: 40px;
-webkit-transition-duration: 1s;
transition-duration: 1s;
-webkit-transition-timing-function: ease-in-put;
transition-timing-function: ease-in-put;
font-weight: 200;
}
.form {
padding: 20px 0;
position: relative;
z-index: 2;
}
.form input {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: 0;
border: 1px solid rgba(255, 255, 255, 0.4);
background-color: rgba(255, 255, 255, 0.2);
width: 250px;
border-radius: 3px;
padding: 10px 15px;
margin: 0 auto 10px auto;
display: block;
text-align: center;
font-size: 18px;
color: white;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
font-weight: 300;
}
.form input:hover {
background-color: rgba(255, 255, 255, 0.4);
}
.form input:focus {
background-color: white;
width: 300px;
color: #53e3a6;
}
.form button {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
outline: 0;
background-color: white;
border: 0;
padding: 10px 15px;
color: #009657;
border-radius: 3px;
width: 250px;
cursor: pointer;
font-size: 18px;
-webkit-transition-duration: 0.25s;
transition-duration: 0.25s;
}
.form button:hover {
background-color: #f3f4f5;
}
.bg-bubbles {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.bg-bubbles li {
position: absolute;
list-style: none;
display: block;
width: 40px;
height: 40px;
background-color: rgba(255, 255, 255, 0.15);
bottom: -160px;
-webkit-animation: square 25s infinite;
animation: square 25s infinite;
-webkit-transition-timing-function: linear;
transition-timing-function: linear;
}
.bg-bubbles li:nth-child(1) {
left: 10%;
}
.bg-bubbles li:nth-child(2) {
left: 20%;
width: 80px;
height: 80px;
-webkit-animation-delay: 2s;
animation-delay: 2s;
-webkit-animation-duration: 17s;
animation-duration: 17s;
}
.bg-bubbles li:nth-child(3) {
left: 25%;
-webkit-animation-delay: 4s;
animation-delay: 4s;
}
.bg-bubbles li:nth-child(4) {
left: 40%;
width: 60px;
height: 60px;
-webkit-animation-duration: 22s;
animation-duration: 22s;
background-color: rgba(255, 255, 255, 0.25);
}
.bg-bubbles li:nth-child(5) {
left: 70%;
}
.bg-bubbles li:nth-child(6) {
left: 80%;
width: 120px;
height: 120px;
-webkit-animation-delay: 3s;
animation-delay: 3s;
background-color: rgba(255, 255, 255, 0.2);
}
.bg-bubbles li:nth-child(7) {
left: 32%;
width: 160px;
height: 160px;
-webkit-animation-delay: 7s;
animation-delay: 7s;
}
.bg-bubbles li:nth-child(8) {
left: 55%;
width: 20px;
height: 20px;
-webkit-animation-delay: 15s;
animation-delay: 15s;
-webkit-animation-duration: 40s;
animation-duration: 40s;
}
.bg-bubbles li:nth-child(9) {
left: 25%;
width: 10px;
height: 10px;
-webkit-animation-delay: 2s;
animation-delay: 2s;
-webkit-animation-duration: 40s;
animation-duration: 40s;
background-color: rgba(255, 255, 255, 0.3);
}
.bg-bubbles li:nth-child(10) {
left: 90%;
width: 160px;
height: 160px;
-webkit-animation-delay: 11s;
animation-delay: 11s;
}
@-webkit-keyframes square {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
}
100% {
-webkit-transform: translateY(-700px) rotate(600deg);
transform: translateY(-700px) rotate(600deg);
}
}
@keyframes square {
0% {
-webkit-transform: translateY(0);
transform: translateY(0);
}
100% {
-webkit-transform: translateY(-700px) rotate(600deg);
transform: translateY(-700px) rotate(600deg);
}
}
</style>
<body>
<div class=”htmleaf-container”>
<div class=”wrapper”>
<div class=”container”>
<h1><?php bloginfo(‘name’); ?></h1>
<div class=”form”><p>警告 / WARNING</p>
<p>本物品內容可能令人反感;不可將本物品內容派發,傳閱,出售,出租,交給或出借予年齡未滿 18 歲的人士出示,播放或播映。</p>
<p>This article contains material which may offernd and may not be distributed, circulated, sold, hired, given, lent, shown, played or projected to a person under the age of 18 years. All models are 18 or older.</p>
<button href=”javascript::” id=”confirm”>已滿 18 歲, 請按此</button>
<p></p>
<button type=”submit” href=”javascript:” id=”close”>未滿 18 歲, 請按此</button>
</div>
</div>
<ul class=”bg-bubbles”><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul></div></div>
<script>
jQuery(document).ready(function($) {
$(“#confirm”).click(function(){
var name = ‘isAdult’;
var value = ‘yes’;
var exp = new Date();
exp.setTime(exp.getTime() + 30*24*60*60*1000); //设置过期时间为三十天
document.cookie = name + “=”+ escape (value) + “;expires=” + exp.toGMTString();
document.location.reload();
});
$(“#close”).click(function(){
if(window.history.go(-1) == undefined){
window.location.href=”about:blank”;
}
else{
window.history.go(-1);
}
});
});
</script>
</body></html>
<?php
}
}
new AdultContentsWarning();