WordPress 限制搜索关键词

今天打开 Google Search Console 的后台查看网页索引编制,给吓了一跳。这群祸害硬生生的给关键词刷了两万多条,怎么不去死啊。

zapro_231223151921

zapro_231223151629

所以决定对搜索加以修改,限制搜索内容的字符长度和过滤部分关键词。将以下代码添加到你主题下的functions.php文件中:

//WordPress限制搜索关键词实现搜索黑名单
function dmd_search_filter($request_vars) {
    if (!is_user_logged_in()){
        $request_vars['s'] = "请先登录";
        }
    if (!empty($request_vars['s']) && iconv_strlen($request_vars['s'],"UTF-8")>5) {
        $request_vars['s'] = "搜索词太长";
    }
    $a=array("色情","赌博","政治");
    for($i=0;$i

修改 WordPress 内存限制提升网站性能

对于 WordPress 拥有上万数据量的时候,一次性调用和处理大数据的时候就会出现超时和内存溢出、502 错误等,那么为了充分利用服务器资源和更好的发挥 WordPress 性能,我可以通过修改 WordPress 内存限制来提升 WordPress 性能。

修改方法

在 WordPress 根目录的 wp-config.php 文件有“ABSPATH”字样的上面添加一下配置代码即可:

//WordPress 内存限制
define( 'WP_MEMORY_LIMIT', '128M' ); //前端
define( 'WP_MAX_MEMORY_LIMIT', '256M' ); //后端

使用WP CLI命令,一次性删除 WordPress 中未使用的图片

删除多余的图片,实际上数据库也进行了精简,可以让WordPress网站加载更快,也是一种优化方法。

for id in $(wp db query "SELECT ID FROM wp_posts WHERE post_date>='2022-10-01' AND post_date<='2022-10-30' AND post_type='attachment' AND post_parent=0" --silent --skip-column-names)
do
wp post delete --force $id
done

WordPress 文章内URL自动超链接自动添加nofollow在新窗口打开

WordPress文章默认需要给链接插入连接才可以生成超链接,非常繁琐,现在只需几行代码,就有可以自动给文章中的所有连接添加a标签,并且加上nofollow和_blank属性,让连接自动在新窗口打开并且不传递权重。

修改主题的functions.php文件,在最后加入:

// 文章页面链接添加nofollow标签并在新窗口打开
add_filter('the_content', 'make_clickable');
function autolinkraaynk( $content ) {
    $regexp = "]*href=(\"??)([^\" >]*?)\\1[^>]*>";
    if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
        if( !empty($matches) ) {
            $srcUrl = get_option('siteurl');
            for ($i=0; $i < count($matches); $i++)
            {
                $tag = $matches[$i][0];
                $tag2 = $matches[$i][0];
                $url = $matches[$i][0];
                $noFollow = '';
                $pattern = '/target\s*=\s*"\s*_blank\s*"/';
                preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
                if( count($match) < 1 )
                    $noFollow .= ' target="_blank" ';
                $pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
                preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
                if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');
                    $tag .= $noFollow.'>';
                    $content = str_replace($tag2,$tag,$content);
                }
            }
        }
    }
    $content = str_replace(']]>', ']]>', $content);
    return $content;
}
add_filter( 'the_content', 'autolinkraaynk');
退出移动版