digitoimistodude / air-helper

Air helper brings our preferences to Air-light based themes and extends with many ways like adding WooCommerce support.
MIT License
49 stars 7 forks source link
woocommerce wordpress wordpress-plugin

Air helper

Packagist GitHub contributors Build Status for PHP 8.3 Build Status for PHP

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

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.

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:

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

Checks

Image lazyloading

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

Pagination

Misc

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

Security

ACF

Archives

The SEO Framework

Yoast

Commenting

Customizer

Gravity Forms

Imagify

Email Address Encoder

Mail

Media

Rest API

TinyMCE

Misc

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.