alleyinteractive / wp-alleyvate
Alley 为 WordPress 网站提供的默认设置。
Requires
- php: ^8.1
- alleyinteractive/composer-wordpress-autoloader: ^1.0
- alleyinteractive/wp-type-extensions: ^2.0
Requires (Dev)
- dev-main
- v3.3.0
- v3.2.0
- v3.1.0
- v3.0.1
- v3.0.0
- v2.4.0
- v2.3.1
- v2.3.0
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.0
- v1.0.0
- dev-97-set-jetpack-to-staging-on-non-production-sites
- dev-feature/issue-99/prevent-alley-users-from-appearing
- dev-feature/knight-1109/alleyvate-limit-xmlrpc-access
- dev-feature/feature
- dev-feature/disable-attachment-pages
- dev-feature/wordpress-vip-security
This package is auto-updated.
Last update: 2024-09-04 16:29:01 UTC
README
Alleyvate 包含为满足 Alley 质量标准而必需的 WordPress 网站的基础自定义和功能。
安装
使用以下命令安装最新版本
composer require alleyinteractive/wp-alleyvate
基本用法
Alleyvate 是一组独立的特性,默认情况下都启用。每个特性都有一个处理程序,网站可以使用 alleyvate_load_feature
或 alleyvate_load_{$handle}
过滤器选择不启用个别特性。特性在 after_setup_theme
钩子上加载,所以您的过滤器必须在那时之前就位。
禁用特性
此插件的目的在于,所有特性都应该默认开启,除非有充分的理由将其关闭。例如,大多数网站都将希望开启 disable_comments
特性,除非网站实际使用了 WordPress 评论,在这种情况下应该将其关闭。
要禁用特性,请使用 alleyvate_load_{$feature_name}
过滤器并返回 false
。例如,要告诉 Alleyvate 不 禁用评论
add_filter( 'alleyvate_load_disable_comments', '__return_false' );
特性
以下列出了每个特性的处理程序及其功能的描述。
cache_slow_queries
此特性将慢查询缓存/优化到数据库中以提高性能。默认启用,目前包括以下慢查询,并提供了相关的过滤器来禁用它们
alleyvate_cache_months_dropdown
:文章列表表中选择月份的下拉菜单。
clean_admin_bar
此特性从管理栏中删除选定的节点。
disable_apple_news_non_prod_push
此特性在非生产环境中禁用向 Apple News 推送。这是通过设置 WP_ENVIRONMENT_TYPE
环境变量或 WP_ENVIRONMENT_TYPE
常量来确定的。
disable_attachment_routing
此特性完全从网站前端禁用 WordPress 附件页面。
disable_block_editor_rest_api_preload_paths
此特性通过禁用已同步模式的预加载(可重用块)来增强块编辑屏幕的稳定性和性能。通常,预加载会触发每个块的 the_content
过滤器以及额外的处理。这可能导致意外的行为和性能下降,尤其是在拥有数百个同步模式的网站上。值得注意的是,单个块中的错误可能会在所有块编辑屏幕中传播。禁用预加载使系统更具弹性——更不容易发生级联故障——从而提高整体管理员稳定性。有关 WP 核心如何实现预加载的技术细节,请参阅 wp-admin/edit-form-blocks.php。
disable_comments
此特性完全禁用 WordPress 评论,包括发布、查看、编辑、列出、计数、修改设置或访问与评论相关的 URL 的能力。
disable_custom_fields_meta_box
此特性从文章编辑器中删除自定义字段元框。
disable_dashboard_widgets
此特性从仪表板中清除杂乱。
disable_deep_pagination
此特性默认将分页查询限制为最多 100 页。此值可以使用 alleyvate_deep_pagination_max_pages
过滤器进行筛选,或通过将 __dangerously_set_max_pages
参数传递给 WP_Query
。
// An example. $query = new WP_Query( [ 'paged' => 102, '__dangerously_set_max_pages' => 150, ] );
disable_file_edit
此特性防止直接从管理员中编辑主题和插件。
此类编辑可能会引入意外的和未记录的代码更改。
disable_pantheon_constant_overrides
此功能防止 Pantheon 环境强制 CLI 和 Cron 运行使用 WP_HOME
或 WP_SITEURL
常量,这些常量有时会导致这些环境使用不安全的协议。
disable_password_change_notification
此功能禁用向网站管理员发送密码更改通知电子邮件。
disable_site_health_directories
此功能禁用对 WordPress 目录及其大小信息的网站健康检查。
disable_sticky_posts
此功能完全禁用 WordPress 粘贴帖子功能,包括设置和查询粘贴帖子的能力。
disable_trackbacks
此功能禁用 WordPress 发送或接收引用或pingback。
force_two_factor_authentication
此功能强制具有 edit_posts
权限的用户使用两步认证(2fa)来保护其账户。
login_nonce
此功能在登录表单中添加一个一次性令牌,以防止 CSRF 攻击。
prevent_framing
此功能通过输出 X-Frame-Options: SAMEORIGIN
标头,防止网站被其他网站框架。可以通过过滤 alleyvate_prevent_framing_disable
返回 true 来禁用此标头。可以通过使用 alleyvate_prevent_framing_x_frame_options
过滤器来过滤标头的值。
该功能还可以通过过滤 alleyvate_prevent_framing_csp
返回 true 来输出一个 Content-Security-Policy
标头而不是 X-Frame-Options
。默认情况下,它将输出 Content-Security-Policy: frame-ancestors 'self'
。可以通过使用 alleyvate_prevent_framing_csp_frame_ancestors
过滤器来过滤允许的 frame-ancestors。可以使用 alleyvate_prevent_framing_csp_header
过滤器过滤整个标头。
redirect_guess_shortcircuit
此功能阻止 WordPress 试图为 404 请求猜测重定向 URL。
redirect_guess_404_permalink()
的底层行为通常会让客户感到困惑,而且在大网站上的数据库查询效率低下。
remove_shortlink
此功能从网站的头部移除短链接。默认情况下,WordPress 会向网站头部添加一个短链接,但大多数网站并不使用它。
user_enumeration_restrictions
此功能要求用户登录后才能访问关于注册用户的公开可访问数据。其处理函数为 user_enumeration_restrictions
。
WordPress 核心认为 "用户名或用户 ID 不是私人或安全信息",因此允许通过其一些 API 列出用户。
我们的客户通常不希望他们的网站上注册用户的信息被发现;此类列表甚至可能泄露 Alley 与客户的关系。