A safe and reliable WordPress shortcode for PHP's file_get_contents() function.
Shortcode Attributes
- body = Keep only the content between <body></body> HTML tags (default is true).
- cache = Number of seconds to cache the contents (defaults is 3600 seconds).
- class = Add a class to the content 'div' container (default is none).
- code = Wrap the content in a <code></code> container (default is false).
- code_class = Add a class to the 'code' container (default is none).
- code_lang = Escape HTML characters, wrap the content in a <pre><code></code></pre> container, and add a language class to the 'code' container (default is none).
- esc_html = Escape HTML characters (default is false).
- esc_html_pre_code = Escape HTML characters and wrap the content in a <pre><code></code></pre> container (default is false).
- file = Path to a local file (relative to the wp-content/ folder).
- filter = Apply the named filter to the content (default is none).
- more = Add a more link on non-singular web pages (default is true).
- pre = Wrap the content in a <pre></pre> container (default is false).
- pre_class = Add a class to the 'pre' container (default is none).
- pre_code = Wrap the content in a <pre><code></code></pre> container (default is false).
- pre_lang = Escape HTML characters, wrap the content in a <pre><code></code></pre> container, and add a language class to the 'pre' container (default is none).
- pre_title = Add a title to the 'pre' container (default is none).
- url = URL or file URI.
- utf8 = Encode HTML entities (default is true).
Note that all file paths (not URLs) are relative to the wp-content/ folder. For security reasons, it is not possible to include files outside the wp-content/ folder. As an example, the shortcode attributes url="file://dir/file.html"
and file="/dir/file.html"
are both read as wordpress/wp-contents/dir/file.html. The ..
folder name is also stripped from file paths to prevent backing out of the wp-content/ folder.
Shortcode Name
The WPFGC_SHORTCODE_NAME constant can be defined in your wp-config.php file to add an additional custom shortcode name (the default shortcode names are 'wp-file-get-contents' and 'wpfgc').
define( 'WPFGC_SHORTCODE_NAME', 'include' );
Shortcode Examples
[wpfgc url="http://example.com/dir/file.html"]
[wpfgc url="http://example.com/counter/" cache="7200"]
[wpfgc url="file://dir/file.html"]
[wpfgc file="/dir/file.txt" pre="true" filter="my_custom_filter_name" cache="600"]
[wpfgc file="examples/example-1.php" code_lang="php"]
Version Numbering
Version components:
{major}.{minor}.{bugfix}[-{stage}.{level}]
- {major} = Major structural code changes and/or incompatible API changes (ie. breaking changes).
- {minor} = New functionality was added or improved in a backwards-compatible manner.
- {bugfix} = Backwards-compatible bug fixes or small improvements.
- {stage}.{level} = Pre-production release: dev < a (alpha) < b (beta) < rc (release candidate).
Repositories
Changelog / Release Notes
Version 2.7.1 (2023/12/20)
- New Features
- None.
- Improvements
- None.
- Bugfixes
- Added
sanitize_text_field()
sanitation for file path value.
- Added
wp_http_validate_url()
sanitation for URL value (props Erwan Le Rousseau @ WPScan).
- Developer Notes
- None.
- Requires At Least
- PHP v7.4.33.
- WordPress v5.9.