WordPress优化

  • 控制 WordPress 文章的发布间隔时间

    有时候大家发布文章的时候可能是一有时间就会连着发布好几篇,但每篇文章的发布时间有一定时间间隔或许更适合读者。实现方法很简单,如下: 将代码添加到当前主题的 functions.php 文件中: //设定每篇文章的发布间隔 function force_time_between_posts($data, $postarr) { global $wpdb; if (empty($postarr['ID'])) return $data; $latest = $wpdb->get_var(" SELECT post_date FROM {$wpdb->posts} WHERE post_status IN('future','publish') AND post_type = 'post' AND ID != {$postarr['ID']} ORDER BY post_date DESC LIMIT 1"); $distance = 60; // 时间间隔(分钟) $latest = strtotime($latest); $current = strtotime($data['post_date']); if ($latest < $current) { $diff = $current - $latest; } else { $diff = 0; } if ($diff >= 0 && $diff < ($distance * 60)) { $new_date = $latest + ($distance * 60); $date = date('Y-m-d H:i:s',$new_date); $date_gmt...

    2019年8月9日
    0 0 2.1K
  • WordPress 根据访问设备使用不同的主题

    根据访问设备的不同,区分开浏览器版本和PC与移动端,代码如下: function ws_switch_theme($theme){ global $is_IE; if($is_IE){ preg_match('/MSIE\s(\d)\.0;/', $_SERVER['HTTP_USER_AGENT'], $matches); $IEversion = $matches[1]; if($IEversion=6){ $theme='twentyten';//IE 6 } if($IEversion=7){ $theme='twentyeleven';//IE 7 } if($IEversion=8){ $theme='twentytwelve';//IE 8 } } if(wp_is_mobile()) { $theme='twentytwelve';//移动端 } return $theme; } add_filter( 'template', 'ws_switch_theme' ); add_filter( 'stylesheet', 'ws_switch_theme' ); 你可以根据上面的代码自行修改,在何种设备访问时加载什么主题。注意主题名字一定是主题文件夹名字,而不是后台管理界面你看到的主题名字。请勿直接添加到主题的 functions.php 中,无法生效。 使用方法: 1.在 Code Snippets 插件 中添加此段代码 插件下载地址:https://tw.wordpress.org/plugins/code-snippets/ 2.把代码写成插件,安装!(反正我是不会,有能力的自己去写吧!)

    2019年7月23日
    0 0 1.9K
  • 免插件实现 WordPress 文章自动添加标签

    将以下代码粘贴到 function.php 中: // WordPress 自动为文章添加已使用过的标签 function array2object($array) { // 数组转对象 if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key => $val){ $obj->$key = $val; } } else { $obj = $array; } return $obj; } function object2array($object) { // 对象转数组 if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array; } add_action('save_post', 'auto_add_tags'); function auto_add_tags(){ $tags = get_tags( array('hide_empty' => false) ); $post_id = get_the_ID(); $post_content = get_post($post_id)->post_content; if ($tags) { $i = 0;...

    2019年7月22日
    0 0 617
  • WordPress 评论添加验证码

    垃圾评论是无法避免的,一般可以开启评论审核不让垃圾评论第一时间显示,但这并不能阻断垃圾评论的产生。所以我们需要验证码防止机器人评论广告信息,不用安装任何插件就能现实验证码功能。 将代码添加到当前主题的 functions.php 中: 一:数字加法两个随机数验证码 function loper_protection_math(){ # 数字加法两个随机数, 范围0~99 $num1=rand(0,9); $num2=rand(0,9); echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\" placeholder=\"$num1 + $num2 = ?\" >\n"; echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n"; echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">"; echo "<label for=\"math\">请输入(计算结果)</label>\n"; } function loper_protection_pre($commentdata){ $sum=$_POST['sum']; switch($sum){ case $_POST['num1']+$_POST['num2']: break;case null:err('错误: 请输入验证码。'); break;default:err('错误: 验证码错误。');} return $commentdata;} if($comment_data['comment_type']==''){ add_filter('preprocess_comment','loper_protection_pre');} 二:英文数字随机数验证码 function loper_protection_math(){ $num1=substr(md5(mt_rand(0,99)),0,5); # 英文数字随机数, 范围0~99 echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n"; echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n"; echo "<label for=\"math\" >请输入( $num1 )</label>\n"; } function loper_protection_pre($commentdata){ $sum=$_POST['sum']; switch($sum){ case $_POST['num1']: break;case null:err('错误:...

    2019年7月9日
    0 0 1.7K
  • WordPress实用functions.php代码集

      100个,有点飘了。努力做到啊!收集一些比较实用,只需要插入 functions.php 就能实现功能的代码。大家可以在页面使用 CTRL+F 进行查找,以下代码本站未全部测试,使用前请做好备份。如有代码错误,请及时留言。 推荐阅读:WordPress高效正确的管理 functions.php 文件 1、实现侧边栏文本工具运行PHP代码 add_filter('widget_text', 'php_text', 99); function php_text($text) { if (strpos($text, '<' . '?') !== false) { ob_start(); eval('?' . '>' . $text); $text = ob_get_contents(); ob_end_clean(); } return $text; } 2、禁用 Gutenberg(古腾堡) 编辑器 add_filter('use_block_editor_for_post', '__return_false'); remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' ); 3、指定分类不在首页显示 function exclude_category_home( $query ) { if ( $query->is_home ) { $query->set( 'cat', '-20, -22' ); //你要排除的分类ID } return $query; } add_filter( 'pre_get_posts', 'exclude_category_home' ); 4、搜索结果排除指定文章或页面 function wpsite_search_filter_id($query) { if ( !$query->is_admin && $query->is_search) { $query->set('post__not_in', array(40,819)); //文章或者页面的ID } return $query; } add_filter('pre_get_posts','wpsite_search_filter_id');...

    2019年6月26日
    0 0 519
  • WordPress禁用RSS功能,避免被采集

    RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,早期使用RSS订阅能更快地获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。 大部分玩博客的人对RSS都不陌生,通过订阅工具及时了解博客的更新信息,增进博主之间的交流。但RSS的输出也让一些采集狗们有了空子可以钻,你辛辛苦苦写的文章被他们疯狂的采集,如果他们网站的权重比你高,有可能他的站比你收录的还快。你就妥妥的变成了给别人做嫁衣,冤不冤? 如果你想禁用 RSS,就将下面的代码添加到主题的 functions.php 文件中: # delete RSS function wpjam_disable_feed() { wp_die(__('抵制采集狗,如有误伤,请通过邮件订阅!')); } add_action('do_feed', 'wpjam_disable_feed', 1); add_action('do_feed_rdf', 'wpjam_disable_feed', 1); add_action('do_feed_rss', 'wpjam_disable_feed', 1); add_action('do_feed_rss2', 'wpjam_disable_feed', 1); add_action('do_feed_atom', 'wpjam_disable_feed', 1); 避免被采集的小方法: 1、推迟WordPress的RSS输出时间,方法参考:推迟WordPress的RSS输出时间避免被采集 2、采用邮件订阅,推荐插件:Email Subscribers & Newsletters

    2019年6月25日
    0 0 2.4K
  • WordPress 搜索结果只有一篇时自动定向到文章

    要实现这样的功能,有两个方法: 一、添加自定义 HOOK 将下面的代码添加到主题中 functions.php 文件里: add_action('template_redirect', 'wj_redirect_single_post'); function wj_redirect_single_post() { if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } } } 二、直接修改搜索模板文件(不推荐) 在 loop 循环里面添加以下代码: if (is_search()) { global $wp_query; if ($wp_query->post_count == 1) { wp_redirect( get_permalink( $wp_query->posts['0']->ID ) ); } }

    2019年6月24日
    0 0 427
  • 修改WordPress注册用户默认角色名称

    WordPress 中默认的用户角色有5种,订阅者、投稿者、作者、编辑、管理员,默认这些名称是不能从后台直接修改的。下面我们以修改“订阅者”为例: 将下面的代码添加到 WordPress 主题的 function.php 文件中。 function wps_change_role_name() { global $wp_roles; if ( !isset( $wp_roles ) ) $wp_roles = new WP_Roles(); $wp_roles->roles['subscriber']['name'] = '注册会员'; $wp_roles->role_names['subscriber'] = '注册会员'; } add_action('init', 'wps_change_role_name'); 默认权限介绍及用户权限: 订阅者(subscriber):只允许修改自己的个人资料,例如昵称、联系方式、密码等等。 投稿者(contributor ):具有订阅者的所有权限。可以发表或删除自己的文章,但所发文章需经管理员审核后才能在博客上显示。可以编辑处于待审中的文章,但对已通过审核的文章不能编辑。也可以查看所有站内评论,但不能对评论进行编辑。 作者(author):具有投稿者的所有权限。所发表的文章无需管理员审核即可显示,还可以编辑已通过审核的文章,并且拥有媒体库的使用权限。 编辑(editor ):具有作者的所有权限。可以对文章、标签、分类、页面、友情链接、评论进行管理,也可以编辑待审中的文章,但编辑后仍然处于待审状态。实际上,编辑拥有除外观、插件、用户、设置和备份之外所有后台选项的操作权限。 管理员(administrator ):是wordpress最重要的角色,也是最高管理者,拥有博客后台的所有操作权限,通常该角色是唯一的。

    2019年6月24日
    0 0 453
  • WordPress上传webp格式的图片

    什么是webp就不做介绍了,直接说方法吧! 修改 WordPress 目录 /wp-includes/functions.php 文件 注意不是主题下的 functions.php 1.搜索 'image/jpeg' => 'jpg', 在下一行加入:'image/webp' => 'webp', 2.搜索 'jpg|jpeg|jpe' => 'image/jpeg', 在下一行加入:'webp' => 'image/webp', 现在你就可以上传webp格式的图片了,但你会发现媒体库的文件无法预览。接下来继续修改: 在主题的 functions.php 里添加以下代码: function bzg_file_is_displayable_image($result, $path) { $info = @getimagesize( $path ); if($info['mime'] == 'image/webp') { $result = true; } return $result; } add_filter( 'file_is_displayable_image', 'bzg_file_is_displayable_image', 10, 2 ); 修改完毕! 相关拓展 1.Photoshop 如何导出webp格式的图片 安装 PhotoShop WebPFormat 插件(下载 WebPFormat ),将WebPFormat.dmg(Mac)或者WebPFormat.8bi(Windows)复制粘贴至PhotoShop安装目录内的Plug-ins插件文件夹,重新启动PS。 2.如何直接保存网页中的图片为webp格式 安装Chrome插件:图片另存为JPG/PNG/WebP 3.Windows / Mac 怎么预览webp图片,当然是安装WebP插件,点击下载  

    2019年6月21日
    0 0 741

💖 帮助我们更好的生产内容,请将本站加入广告屏蔽插件的白名单,非常感谢。
🚀 请尽快激活您的账号,账号注册未激活30天后将被清理。(已激活用户请忽略)
点击登录,重新获取激活邮件。