如果你有开发需求,可以联系一秒互联公司, 联系电话:400-716-8908  微信:diycloud 

WordPress开发中常用代码(必备)

DeepSeek - AI生成摘要

很多人在WordPress开发中常用代码,WordPress 相比其它网站程序,最突出的优势:主题模板多,插件多,相关技术文章多,只要你想到的功能,都可以通过插件或者代码实现。现在分享下WordPress常用代码,将代码放入执行文件(例如:functions.php)中就即可,便于大家查阅,不断更新中… WordPress开发中常用代码(必备) 一、WordPress安全类 1. Wo

很多人在WordPress开发中常用代码,WordPress 相比其它网站程序,最突出的优势:主题模板多,插件多,相关技术文章多,只要你想到的功能,都可以通过插件或者代码实现。现在分享下WordPress常用代码,将代码放入执行文件(例如:functions.php)中就即可,便于大家查阅,不断更新中…

WordPress开发中常用代码(必备)
一、WordPress安全类
1. WordPress禁止自动更新

  1. define("AUTOMATIC_UPDATER_DISABLED", true); // 禁用自动更新 wp-config.php
  2. add_filter("pre_site_transient_update_core", "fake_update_callback"); // 关闭核心提示
  3. add_filter("pre_site_transient_update_plugins", "fake_update_callback"); // 关闭插件提示
  4. add_filter("pre_site_transient_update_themes", "fake_update_callback"); // 关闭主题提示
  5. remove_action("admin_init", "_maybe_update_core"); // 禁止 WordPress 检查更新
  6. remove_action("admin_init", "_maybe_update_plugins"); // 禁止 WordPress 更新插件
  7. remove_action("admin_init", "_maybe_update_themes"); // 禁止 WordPress 更新主题
  8. function fake_update_callback(){
  9. return null;
  10. }

 

2. URL防止危险代码

  1. if (
  2. strpos($_SERVER["REQUEST_URI"], "eval(") || strpos($_SERVER["REQUEST_URI"], "base64") || strpos($_SERVER["REQUEST_URI"], "/**/")
  3. ) {
  4. @header("HTTP/1.1 414 Request-URI Too Long");
  5. @header("Status: 414 Request-URI Too Long");
  6. @header("Connection: Close");
  7. @exit;
  8. }

 

3. 禁止多地同时登录

  1. function pcl_user_has_concurrent_sessions()
  2. {
  3. return (is_user_logged_in() && count(wp_get_all_sessions()) > 2);
  4. }
  5. add_action("init", function () {
  6. // 除了管理员,其他人不允许多地同时登陆。
  7. if (!current_user_can("manage_options")) {
  8. if (!pcl_user_has_concurrent_sessions()) {
  9. return;
  10. }
  11. $newest = max(wp_list_pluck(wp_get_all_sessions(), "login"));
  12. $session = pcl_get_current_session();
  13. if ($session["login"] === $newest) {
  14. wp_destroy_other_sessions();
  15. } else {
  16. wp_destroy_current_session();
  17. }
  18. }
  19. });

 

4. 禁用WordPress致命错误(WSOD)处理

  1. define( "WP_DISABLE_FATAL_ERROR_HANDLER", true ); // wp-config.php
  2. add_filter( "wp_fatal_error_handler_enabled", "__return_false" ); // functions.php

 

二、WordPress功能类

  1. 1. 允许上传其它的文件类型
  2. add_filter("upload_mimes", function ($mimes) use ($string) {
  3. $arr = explode(",", $string);
  4. foreach ($arr as $k) {
  5. $kv = explode("=", trim($k));
  6. if (count($kv) == 2) $mimes[trim($kv[0])] = trim($kv[1]);
  7. }
  8. return $mimes;
  9. }, 99);

 

2. 禁用xmlrpc

  1. add_filter("xmlrpc_enabled", "__return_false");
  2. add_filter("xmlrpc_methods", function ($methods) {
  3. unset($methods["pingback.ping"]);
  4. return $methods;
  5. });
  6. //果你还是用使用第三方客户端来管理 WordPress 文章,那么可以只关闭 XML-RPC 的 pingback 端口
  7. //禁用XML-RPC的pingback接口
  8. add_filter( 'xmlrpc_methods', 'remove_xmlrpc_pingback_ping' );
  9. function remove_xmlrpc_pingback_ping( $methods ) {
  10. unset( $methods['pingback.ping'] );
  11. return $methods;
  12. }

 

3. 禁用Feed

  1. function wpjam_feed_disabled()
  2. {
  3. wp_die("Feed已经关闭, 请访问网站<a href="" . get_bloginfo("url") . "">首页</a>!");
  4. }
  5. add_action("do_feed", "wpjam_feed_disabled", 1);
  6. add_action("do_feed_rdf", "wpjam_feed_disabled", 1);
  7. add_action("do_feed_rss", "wpjam_feed_disabled", 1);
  8. add_action("do_feed_rss2", "wpjam_feed_disabled", 1);
  9. add_action("do_feed_atom", "wpjam_feed_disabled", 1);

 

4. 禁用Rest API

  1. add_filter("json_enabled", "__return_false");
  2. add_filter("json_jsonp_enabled", "__return_false");
  3. add_filter("rest_enabled", "__return_false");
  4. add_filter("rest_jsonp_enabled", "__return_false");
  5. remove_action("init", "rest_api_init");
  6. remove_action("rest_api_init", "rest_api_default_filters", 10);
  7. remove_action("parse_request", "rest_api_loaded");
  8. remove_action("wp_head", "rest_output_link_wp_head", 10);
  9. remove_action("template_redirect", "rest_output_link_header", 11);
  10. remove_action("auth_cookie_malformed", "rest_cookie_collect_status");
  11. remove_action("auth_cookie_expired", "rest_cookie_collect_status");
  12. remove_action("auth_cookie_bad_username", "rest_cookie_collect_status");
  13. remove_action("auth_cookie_bad_hash", "rest_cookie_collect_status");
  14. remove_action("auth_cookie_valid", "rest_cookie_collect_status");
  15. add_filter("rest_authentication_errors", function () {
  16. return new WP_Error("rest_disabled", __("The REST API on this site has been disabled."), ["status" => rest_authorization_required_code()]);
  17. });

 

5. 账号注销后重定向

  1. //账号登出后,重定向到登录页面
  2. function redirect_custom_login_page() {
  3. wp_redirect(site_url() . "/sign-in");
  4. exit();
  5. }
  6. add_action("wp_logout", "redirect_custom_login_page");

 

三、WordPress优化加速类
1. WordPress头像使用v2ex CDN加速

  1. // 替换Gravatar为v2ex CDN 头像源
  2. function mytheme_get_avatar( $avatar ) {
  3. $avatar = preg_replace("/https:\/\/(secure|\d).gravatar.com\/avatar\//","https://cdn.v2ex.com/gravatar/",$avatar);
  4. return $avatar;
  5. }
  6. add_filter("get_avatar", "mytheme_get_avatar");

 

2. 移除wp_head不常用代码

  1. remove_action("wp_head", "wp_generator");
  2. foreach (["rss2_head", "commentsrss2_head", "rss_head", "rdf_header", "atom_head", "comments_atom_head", "opml_head", "app_head"] as $action) {
  3. remove_action($action, "the_generator"); //删除 head 中的 WP 版本号
  4. }
  5. remove_action("wp_head", "rsd_link"); //删除 head 中的 RSD LINK
  6. remove_action("wp_head", "wlwmanifest_link"); //删除 head 中的 Windows Live Writer 的适配器?
  7. remove_action("wp_head", "feed_links_extra", 3); //删除 head 中的 Feed 相关的link
  8. remove_action("wp_head", "index_rel_link"); //删除 head 中首页,上级,开始,相连的日志链接
  9. remove_action("wp_head", "parent_post_rel_link", 10);
  10. remove_action("wp_head", "start_post_rel_link", 10);
  11. remove_action("wp_head", "adjacent_posts_rel_link_wp_head", 10);
  12. remove_action("wp_head", "wp_shortlink_wp_head", 10, 0); //删除 head 中的 shortlink
  13. remove_action("wp_head", "rest_output_link_wp_head", 10); // 删除头部输出 WP RSET API 地址
  14. remove_action("template_redirect", "wp_shortlink_header", 11); //禁止短链接 Header 标签。
  15. remove_action("template_redirect", "rest_output_link_header", 11); // 禁止输出 Header Link 标签。

 

四、WordPress美化类
1. 隐藏后台菜单

  1. $list = ["upload.php"]; // 隐藏媒体库
  2. add_action("admin_menu", function () use ($list) {
  3. foreach ($list as $v) {
  4. remove_menu_page($v);
  5. }
  6. global $menu;
  7. foreach ($menu as $v) {
  8. if ($v[4] == "wp-menu-separator") {
  9. unset($menu[4]);
  10. }
  11. }
  12. });

 

2. 设置后台右下角文本

  1. add_filter("admin_footer_text", function () {
  2. return "创建者XXX";
  3. });

 

3. 移除Wordpress默认登录页logo

  1. add_filter("login_title", function ($a) {
  2. return str_replace("WordPress", home_url(), $a);
  3. });
  4. add_action("login_head", function () {
  5. echo "
  6. <style type="text/css">
  7. #login {width: 392px;}
  8. #login h1 a {display: none !important;}
  9. #backtoblog,#nav {display: none}
  10. .login {
  11. background: #21607d;
  12. }
  13. input[type=text],input[type=password] {
  14. border-color: #c3e3ff;
  15. }
  16. .login form .input, .login input[type=password], .login input[type=text] {
  17. border-radius: 0;
  18. }
  19. </style>
  20. ";
  21. });

 

4. 屏蔽后台隐私

  1. remove_action("user_request_action_confirmed", "_wp_privacy_account_request_confirmed");
  2. remove_action("user_request_action_confirmed", "_wp_privacy_send_request_confirmation_notification", 12); // After request marked as completed.
  3. remove_action("wp_privacy_personal_data_exporters", "wp_register_comment_personal_data_exporter");
  4. remove_action("wp_privacy_personal_data_exporters", "wp_register_media_personal_data_exporter");
  5. remove_action("wp_privacy_personal_data_exporters", "wp_register_user_personal_data_exporter", 1);
  6. remove_action("wp_privacy_personal_data_erasers", "wp_register_comment_personal_data_eraser");
  7. remove_action("init", "wp_schedule_delete_old_privacy_export_files");
  8. remove_action("wp_privacy_delete_old_export_files", "wp_privacy_delete_old_export_files");
  9. add_filter("schedule_event", function ($event) {
  10. if ($event && in_array($event->hook, ["wp_privacy_delete_old_export_files"])) {
  11. return false;
  12. }
  13. return $event;
  14. });

 

5.禁用 WordPress 卡片嵌入式内链 Post Embed 功能

  1. 在当前主题的 functions.php 文件中添加如下代码来屏蔽 Post Embed 该功能:
  2. remove_action('rest_api_init', 'wp_oembed_register_route');
  3. remove_filter('rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4);
  4. remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10 );
  5. remove_filter('oembed_response_data', 'get_oembed_response_data_rich', 10, 4);
  6. remove_action('wp_head', 'wp_oembed_add_discovery_links');
  7. remove_action('wp_head', 'wp_oembed_add_host_js');

 

有一个叫 Disable Embeds 的插件是专门用来禁用文件嵌入功能的,在后台搜索安装启用,实现的效果和上面介绍的代码是一样的。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/cnpinpai/article/details/127340894

DeepSeek 推理问答

×

如问我这篇文章讲了什么。这篇文章是什么意思等。

声明:注意:本站部分图片由 :https://unsplash.com/ 提供
**免责声明**
本网站所载的所有文章内容仅供参考,不构成任何形式的专业建议、意见或判断依据。对于本网站提供的开源代码及免费下载的代码,用户应仅将其用于个人学习、研究或非商业目的,并应在下载后合理期限内完成必要的使用或评估。本网站明确要求用户不得将这些代码用于任何商业用途。
本网站对于所提供的开源代码及免费下载的代码仅用于分享参考,版权归原作者所有。本网站坚决支持并维护软件著作权持有人的合法权益,并强调对原著者的尊重与保护,不会将这些代码用于任何形式的商业盈利目的。
本网站内图片素材、文章内容部分来源于网络收集转载,如有侵权,请联系我们以便及时处理。联系方式:meng#yimiaonet.com(请将“#”替换为“@”)。
未经本网站书面许可,任何个人或组织不得复制、盗用、采集、发布或以其他方式传播本网站的内容至任何形式的网站、书籍、媒体平台或其他公共领域。若本网站内容涉及对原著者合法权益的侵犯,原著者或本网站有权采取法律措施维护自身权益。
本声明由一秒云软件中心发布,并保留随时修改本声明的权利。官方网站信息如下:本站网站:2024.okmg.cn。“OKMG”为本网站注册商标,受法律保护。
科技资讯

APP开发要多少钱?怎么收费?什么流程?详解

2024-10-11 10:31:50

wordpress一秒学院

给WordPress网站文章添加字数、图数、阅读时长

2024-9-10 10:40:25

0 条回复A文章作者M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索