digitoimistodude/air-helper
Composer 安装命令:
composer require digitoimistodude/air-helper
包简介
Plugin provides helpful functions and modifications for WordPress projects.
关键字:
README 文档
README
Air helper provides helpful functions and modifications for WordPress projects. All modifications are preferences of Dude. The plugin is meant to be used with our Air light theme, but works just fine also without it.
Table of contents
- Features
- Installing
- Changelog
- Contributing
Please note before using
Air helper and Air light are used for development, so those update very often. By using these code bases, you agree that the anything can change to a different direction without a prior warning.
Development workflow
- Git clone the repository to your local machine
- Create a fork
- Create a new branch for each new feature (Height task ID for Dude staff)
- Push your changes to your fork
Release cycle workflow
- Test changes thoroughly in multiple projects by symlinking the dev version of air-helper to the projects:
# Project 1 rm -rf /var/www/project1/content/plugins/air-helper ln -s /var/www/air-helper /var/www/project1/content/plugins/ # Project 2 rm -rf /var/www/project2/content/plugins/air-helper ln -s /var/www/air-helper /var/www/project2/content/plugins/ # Project 3 rm -rf /var/www/project3/content/plugins/air-helper ln -s /var/www/air-helper /var/www/project3/content/plugins/
- Run
composer validateto check if the composer.json is valid - After verifying that the changes work as expected, send a pull request to the original repository
- Wait for review and merge
For Dude staff
- Update versions in air-helper.php, package.json and CHANGELOG.md
- Create a release on GitHub with the same version number as the one in the
air-helper.phpfile - The release will automatically be published to Packagist
Features
Localization and Polylang support
Air helper adds fallbacks for widely used Polylang functions, so you can use those events if there's no Polylang or multilanguage support needed in project at the time. This saves heck lot of a time when client want's multilanguage support later on.
Refer to section below and functions to find out how to use translated strings.
Registering your strings
All strings needs to be registered in one localization.php file and passed to air_helper_pll_register_strings an an array.
Like this.
add_filter( 'air_helper_pll_register_strings', function() { return [ // General 'General: Read more' => 'Read more', // Footer 'Footer: Back to top' => 'Back to top', ] } );
REST API support for string translations
By default, the string translation functions like ask__() does not work as intended when run inside a REST request, because Polylang does not support it. You can enable support by setting a lang parameter to your REST request and enabling the feature with hook:
add_filter( 'air_helper_pll_enable_rest', '__return_true' );
Image lazyloading
Air-helper supports tuupola/lazyload (legacy), vanilla-lazyload (legacy) and native-lazyload (native, current). Air-light version prior 6.1.8 (2020-10-20) had support for lazyload.js provided by tuupola/lazyload which is still legacy-supported by air-helper, but no longer provided by air-light theme.
Refer to functions to find out how to use image lazyloading.
Disabled views
In most of the client projects there's no need for some views that WordPress creates automatically. Instead of caring about those, show 404 page.
Currently disabled views are:
- archives: tag, category, date, author
- other: search
Enable specific view back with filter add_filter( 'air_helper_disable_views_{VIEW}', '__return_false' ); or all views with remove_action( 'template_redirect', 'air_helper_disable_views' ).
Functions
Archive related
get_posts_array( $args, $return_key )Get posts in key=>title array.get_post_years()Get years where there are posts published.get_post_months_by_year( $year, $post_type )Get months where there are posts in a specific year. Defaults to current year.
Checks
post_exists_id( $post_id )Check if post exists by ID.has_content( $post_id )Check if post has main content. Defaults to current post id.has_children( $post_id, $post_type )Check if post has child pages. Defaults to current post id.
Image lazyloading
vanilla_lazyload_div( $attachment_id, $fallback )Echo image in lazyloading div.vanilla_lazyload_tag( $attachment_id, $fallback )Echo image in lazyloading img tag.native_lazyload_tag( $attachment_id, $args )Echo image in native lazyloading tag
Fallback is optional. By default fallback is default featured image from theme settings.
Args is optional. Its an array that contains "fallback", "sizes" and "class". Class can be set to give the image tag a specific class, if not set no class will be given.
If you want to get lazyloading div or tag as a string, you may prefix functions with get_.
Localization
ask__( $key, $lang )Return string by key. Defaults to current language.ask_e( $key, $lang )Echo string by key. Defaults to current language.asv__( $key, $lang )Return string by value. Defaults to current language.asv_e( $key, $lang )Echo string by value. Defaults to current language.
Pagination
get_next_page_id( $post_id )Get ID of next page. Defaults to current page.get_prev_page_id( $post_id )Get ID of previous page. Defaults to current page.
Misc
get_icons_for_user( $args)Get list of icons which are available for user. Returns array of icons from defined theme directory (defaultsvg/foruser/).wp_parse_args_dimensional( $a, $b )Similar to wp_parse_args() just extended to work with multidimensional arrays.get_the_sentence_excerpt( $length, $excerpt )Get excerpt with custom length of sentences. Defaults to three sentences and current post.get_primary_category( $post_id )Get primary category for defined or current post.
Modified WordPress functionality
Air helper modifies default behaviour of WordPress and various plugins to make it more suitable for customer projects, forcing our preferences and making sure that all the unnecessary information is hidden or unreachable.
All these modifications can be disabled or altered with hooks. All modifications live under inc directory.
To find out how the modification exactly works and how to disable it, search for a comment section from files in inc directory with following list item.
Admin
- Clean up admin menu from stuff we usually don't need.
- Remove plugins page from admin menu, except for users with specific domain or override in user meta.
- Hide ACF for all users, except for users with specific domain or override in user meta.
- Clean up admin bar.
- Add environment marker to admin bar.
- Remove welcome panel.
- Remove some boxes from dashboard.
- Add our news and support widget to dashboard. Also, make sure that it is always first in order.
- Remove some notices from dashboard.
- Remove Update WP text from admin footer.
- Hide all WP update nags.
Security
- Stop user enumeration by ?author=(init) urls.
- Add honeypot to the login form. NB! This does not replace proper security tools in server, consider using Fail2Ban or similar tool.
- Change login failed message.
- Remove hosting provider specific information from Site Health check.
ACF
- Hide ACF for all users, except the ones that have certain domain in their email address or user meta
_airhelper_admin_show_acfwith value oftrue - Try to activate the pro version automatically if
ACF_PRO_KEYis defined in .env file
Archives
- Remove archive title prefix. Turn off by using
remove_filter( 'get_the_archive_title', 'air_helper_helper_remove_archive_title_prefix' )
The SEO Framework
- Set default setting values.
Yoast
- Set Yoast SEO plugin metabox priority to low.
Commenting
- Add a pingback url auto-discovery header for singularly identifiable articles.
Customizer
- Remove custom CSS.
Gravity Forms
- Allow Gravity Forms to hide labels to add placeholders.
Imagify
- Disable admin bar menu.
- Disable .webp conversion.
- Get Imagify API key from .env
- Resize large images and set maximum width.
- Set optimization level to normal.
Email Address Encoder
- Hide always all email address encoder notifications.
- Force essential SendGrid settings.
- Force to address in wp_mail function so that test emails won't go to client.
- Show notice if SendGrid is not active or configured.
Media
- Custom uploads folder media/ instead of default content/uploads/.
Rest API
- Disable REST API users endpoint.
TinyMCE
- Show TinyMCE second editor tools row by default.
- Remove some Tiny MCE formats from editor.
Misc
- Disable emojicons.
- Strip unwanted html tags from titles.
- Add support for correct UTF8 orderby for post_title and term name (äöå).
- Add instant.page just-in-time preloading script to footer.
Installing
Download the latest version as a zip package and unzip it to your plugins directory.
Or install with composer, running command composer require digitoimistodude/air-helper in your project directory or add "digitoimistodude/air-helper":"dev-master" to your composer.json require.
Updates
Updates will be automatically distributed when a new version is released.
Changelog
Changelog can be found from releases page.
Contributing
If you have ideas about the plugin or spot an issue, please let us know. Before contributing ideas or reporting an issue about "missing" features or things regarding the nature of that matter, please read Please note section. Thank you very much.
digitoimistodude/air-helper 适用场景与选型建议
digitoimistodude/air-helper 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5.87k 次下载、GitHub Stars 达 56, 最近一次更新时间为 2017 年 05 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「plugin」 「wordpress」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 digitoimistodude/air-helper 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 digitoimistodude/air-helper 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 digitoimistodude/air-helper 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
CakePHP 4.x AdminLTE Theme.
Plugin for YOURLS. Default tools to use in some laemmi plugins
Must-use plugin integrating WordPress with the Upsun platform: environment awareness, router-cache friendliness, safe preview clones, deploy migrations, Site Health checks, and a wp upsun CLI command.
Allows polling user for event dates and times.
Support swipe touch gestures to navigate in paginated lists and on Tidypics image pages.
Add a postscript to every email notification sent out to users.
统计信息
- 总下载量: 5.87k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 56
- 点击次数: 12
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-or-later
- 更新时间: 2017-05-22