JSM file_get_contents() Shortcode

Description

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"]

Reviews

April 12, 2017
There are tons of uses for this but for us it is an solution for SPA automated HTML backend deployments.
Read all 1 review

Contributors & Developers

“JSM file_get_contents() Shortcode” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

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.2.34.
    • WordPress v5.8.

Version 2.7.0 (2023/05/16)

  • New Features
    • Added shortcode attribute: code_class, code_lang, esc_html_pre_code, pre_class, pre_code, pre_lang, pre_title.
  • Improvements
    • None.
  • Bugfixes
    • None.
  • Developer Notes
    • None.
  • Requires At Least
    • PHP v7.2.34.
    • WordPress v5.5.