WordPress屏蔽搜索非法关键词,求搜索关键词白名单功能
本帖最后由 myes 于 2021-7-4 11:37 编辑现在的很多灰产利用搜索页面,非法关键词搜索,然后提交sitemap。
利用合法网站发布违法广告,以bc、色情、药物为主。
WordPress构建的网站,除了屏蔽搜索结果页面,也可以按以下方法屏蔽敏感字搜索。
但是我想要的是“白名单”方案,也就是说,只允许搜索“名单”内的关键字,如我的诉求是只允许搜索省市地名
或者只允许搜索不超过10个字符。
曾经找了好几个晚上,都没有找到好的办法。
添加禁止搜索关键词,可以屏蔽大多非法搜索,但是效率好像并不高,如果能够限定搜索词不能超过10个字符,也能屏蔽大多非法广告。欢迎大家提供高频高危关键词。
在WordPress当前主题的functions.php,添加以下代码,然后就可以在WordPress后台的“设置”-“阅读”(wp-admin/options-reading.php)的“搜索关键词屏蔽”,输入屏蔽的关键字,一个一行。
//屏蔽恶意关键词搜索
add_action('admin_init', 'php_search_ban_key');
function php_search_ban_key() {
add_settings_field('php_search_key', '搜索关键词屏蔽', 'php_search_key_callback_function', 'reading');
register_setting('reading','php_search_key');
}
function php_search_key_callback_function() {
echo '<textarea name="php_search_key" rows="10" cols="50" id="php_search_key" class="large-text code">' .
get_option('php_search_key') . '</textarea>';
}
add_action('template_redirect', 'php_search_ban');
function php_search_ban(){
if (is_search()) {
global $wp_query;
$php_search_key = get_option('php_search_key');
if($php_search_key){
$php_search_key = str_replace("\r\n", "|", $php_search_key);
$BanKey = explode('|', $php_search_key);
$S_Key = $wp_query->query_vars;
foreach($BanKey as $Key){
if( stristr($S_Key['s'],$Key) != false ){
wp_die('请不要搜索非法关键字');
}
}
}
}
}
推荐屏蔽高频敏感字:**** Hidden Message ***** 调用指定分类的最新10条
/调用指定分类27的最新10条
<?php
$args = array(
'post_type' => 'post', //自定义文章类型名称
'showposts' => 10, //输出的文章数量,这个可以是缺省值,不用设置
'orderby' => 'modified', //按更新时间排序
'tax_query' => array(
array(
'taxonomy' => 'circle',//自定义分类法名称
'terms' => 27 //id为64的分类。也可是多个分类array(12,64)
),
)
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post();?>
<li>
<a href="<?php the_permalink() ?>" target="_blank"><?php the_title(); ?></a>
</li>
<?php endwhile; wp_reset_query(); //重置query查询
} ?>
让搜索结果支持自定义内容模型:
//让搜索支持自定义文章类型
function searchAll( $query ) {
if ( $query->is_search ) { $query->set( 'post_type', array( 'post','forums', 'product' )); }
return $query;
}
add_filter( 'the_search_query', 'searchAll' );
调用指定搜索关键字(如沙县小吃)文章list:
<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
's'=>'沙县小吃',
'showposts' => 10,
'paged' => $paged
);
query_posts( $args );
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
调用指定关键词调用list:
<?php the_content(); ?>
<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
's'=>'福建',
'showposts' => 10,
'paged' => $paged
);
query_posts( $args );
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
<p><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></p>
<?php
endwhile;
wp_reset_postdata();
endif;
?>
指定文章的tag id 调用列表list:
<?php
$args=array(
'tag_id' => 16,//指定id
'posts_per_page' => 5,//每页显示多少
'orderby' => 'rand', //按随机排序
);
query_posts($args);
if(have_posts()) : while (have_posts()) : the_post(); ?>
<li style="font-weight: bold;">
<a href="<?php the_permalink() ?>" target="_blank"><?php the_title(); ?></a>
<span class="time"><?php the_time('Y年n月j日'); ?></span>
</li>
<?php endwhile; endif; wp_reset_query();?>
指定频道cat=7随机10条list:
<?php query_posts('post_type=post&cat=7&showposts=10&orderby=rand'); ?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink() ?>" target="_blank"><?php the_title(); ?></a></li>
<?php endwhile; ?>
基于wpjam缩略图插件的调用cat=11最新修改的12条图文:
<?php $cat = get_the_category();
foreach($cat as $key=>$category) {
$catid = $category->term_id;
}
$args = array('orderby' => 'modified','showposts' => 12,'cat' => 11 );
$query_posts = new WP_Query();
$query_posts->query($args);
while ($query_posts->have_posts()) : $query_posts->the_post();
?>
<div class="col-md-3 product-item mt30">
<a href="<?php the_permalink() ?>" target="_blank" class="text-center center-block">
<?phpif(wpjam_has_post_thumbnail()){?>
<div class="entry-thumb">
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php wpjam_post_thumbnail(,$crop=1);?></a>
</div>
<?php } ?>
<h3><?php the_title(); ?></h3>
</a>
</div>
<?php endwhile;
?>
<?php wp_reset_query();
?>
</div>
<?php endif; ?>
针对不同浏览器显示不同内容,比如微信公众号内显示微信公众号二维码,普通浏览器打开百度小程序二维码:
<?php$useragent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($useragent, 'MicroMessenger') === false) {
echo "<img src=\"https://file.sxxcfw.cn/wp-content/uploads/2021/03/mb/baidu-miniapp-qr.png\" alt=\"沙县小吃网\" style=\"float:right;width:100px\">";
} else {
echo "
<img src=\"https://file.sxxcfw.cn/wp-content/uploads/2021/04/1618066200-sxxcfw-xcx.png\" alt=\"沙县小吃网\" style=\"float:right;width:100px\">
";
} ?>
谢谢楼主!
kankan 虽然看不懂,但是感觉好厉害的样子 wp还可以会员注册,自己发布吗 楼主好人 楼主好人啊 顺便问下有zblog的吗? 推荐屏蔽高频敏感字: 0318dj 发表于 2021-7-5 10:18
楼主好人啊 顺便问下有zblog的吗?
没有用过zblog,应该 也能实现这个功能,而且可以做的更好 zblog现在用的比较多