Link to external content without forwarding users and without setting up domain forwards with domain masks.
|Author:||Alex Demchak (profile at wordpress.org)|
|WordPress version required:||4.1|
|WordPress version tested:||4.9.8|
|Added to WordPress repository:||04-01-2018|
|Total downloads:||1 509|
Click to start download
Enable the Content Mask with the Checkmark - Put in the URL of the content you would like to embed. Done! Optionally, choose a different method (Download, Iframe, or Redirect). If using the download method, you may also change the cache duration from never up to 4 weeks (you may refresh the cache at any point manually).
The Content Mask Admin Panel shows a list of all Content Mask pages/posts and their current settings. Quickly enable or disable the Content Mask with a single click on the Method icon. The cache may also be refreshed from this page. You may also enabled/disabled Vistor Tracking that shows how many times each Content Masked page has been viewed. Only pages/posts that the current user can edit are displayed.
The regular WordPress page content, without Content Mask on.
The same WordPress page with Content Mask enabled and set to https://example.com/. You can see the URL has remained the same but the content has been entirely replaced (on the front end only) by the content from https://example.com/
content-maskfolder to your
Activate the “Content Mask” plugin.
How to Use:
Edit (or Add) a Page, Post, or Custom Post Type.
Underneath the page editor, find the “Content Mask Settings” metabox.
Click the Checkmark on the left to enable Content Mask.
Paste a URL in the Content Mask URL field.
Choose a method: Download, Iframe, or Redirect (301).
Update (or Publish) the Page, Post or Custom Post Type.
That’s all! When a user visits that Page, Post or Custom Post Type, they will instead see the content from the URL you have put in the Content Mask URL field.
Can I send custom headers with the Download Method
No. If this is a feature you would like implemented, please contact me.
Can You Show the Header/Footer on Content Masked Pages?
No. This is because of how page requests are processed. Using Content Mask will override the entire page content on the front end.
Can I Embed Multiple URLs on One Page?
No. There’s not currently a way to embed multiple URLs onto a single page. You can embed one URL on one page.
Will Content Mask Overwrite My Page Content?
No. Content Mask does not permanently alter anything on your website. The embedded content is only shown on the front-end. When you turn off Content Mask, any page content you had in the editor will still be there.
Something Isn’t Loading With the Download Method
Some websites “whitelist” IP addresses or domains for scripts, images, and files to be accessed from. If that’s the case, try using the iframe method instead.
Something Isn’t Loading with the Iframe Method
Some websites don’t allow themselves to be iframed at all. Please reach out to the webmaster for the content you wish to iframe.
Links Aren’t Working with the Iframe Method
If your website is secured (with https://), make sure any links on the iframed page are secure as well, as most modern browsers don’t allow insecure content (http://) to be loaded into a secure page or iframe.
- Modified Admin Styles to use my preferred blue instead of green for highlighted/actionable items
- Added a new Advanced Option to send a User Agent HTTP Header when using the Download Method to assist with some stubborn authorization issues
- Added Feature Request link in the Admin Panel
- Started SCSS Conversion for admin.css file, broken into partials (still needs optimization)
- Modified Content Mask Admin Panel to load only 20 Content Masks, and subsequently load 20 more when scrolled to the bottom.
- Included Admin Help links above Content Mask Admin Panel
- Introduced an Admin Notice when a page is being overwritten with a Content Mask
- Introduced a “hacky” Admin Notice when a Gutenberg page is being overwritten with a Content Mask since Admin Notices are just hidden.
- Modified plugin structure with an includes file.
- Went back and better commented functions in core files to more closely follow best practices in documentation.
- Included the Site Title in the title tag when using the iframe method.
- Added an optional page tracking feature that tracks the number of visitors to each Content Masked page.
- Fixed a bug where the tag wasn’t showing up when using the iframe method.
- Removed the Cache Refresh option in the Content Mask Admin page for Masks set to Iframe and Redirect (since those methods aren’t cacheable)
- Reverted the change made in 1.4.2 and moved the Page Processing function back to the template Redirect Hook. It was causing issues with homepage redirection.
- Password protection and removal have extraneous scripts has been added to this version of the Page Processing function as well.
- Content Masked pages now respect the Password Protected visibility status.
- When a Content Masked page is Password Protected, it shows the default page with the standard password form. Once the password is successfully submitted, the Content Mask will perform as usual.
- Removed superfluous and/or commented out code that’s no longer used.
- To speed up Content Mask time, the page processing function has been moved to an earlier hook.
- Redundant URL Validity checks have been removed.
- Title has been linked in the Content Mask admin list for ease-of-use.
- Scripts and Styles that are hooked in an unorthodox manner are now killed before rendering a Content Masked page, this will speed up the page, prevent unwanted styles and scripts from being loaded, prevents JS errors from unrelated plugins being thrown in the console.
- Modified the Content Mask admin page table layout
- The Mask URL column is now linked and clickable.
- Cache Expiration column has been added.
- Cache may be refreshed by clicking on Refresh in the Cache Expiration column (shows on row hover).
- Edit and View columns have been removed.
- Edit and View links have been added to to the Title column (shows on row hover)
- Cache (WP Transient) Duration for the Download Method can now be controlled with common values from 1 hour to 4 weeks.
- Underthe hood improves with custom field variable extraction.
- Improved SVG icon clarity.
- Added Content Mask column to Page and Post edit lists which allows an at-a-glance preview of whether Content Mask is enabled, and which type; as well as allowing an Ajax button-press to enable or disable the Content Mask (like on the Content Mask overview admin page).
- Minor changes to prevent undefined variable and similar E_NOTICE level errors from appearing when debug mode was enabled.
- Removed dependency from external CSS in the admin, namely FontAwesome and Line Icons.
- Prevented irrelevant meta field checks when not strictly necessary.
- Behind the scenes improvement with the plugin name and label
- Addressed CSS issues with plugins that used the @keyframes name “check”
- Prevented the
process_page_requestfunction from firing in non singular instances. Post lists and archive pages were firing the first content mask they ran across.
- Replaced the $cm instance variable with a private variable to eliminate namespace conflicts
- Added Content Mask admin page that shows a list of all current Content Masks that the logged in user is allowed to edit. Each row displays all the pertinent info for each Content Mask, and allows a one-click interface to disable or enable it.
- Using the Download method will now replace all relative URLs from the Content Mask URL with an absolute URL. This includes all
actionattributes. Protocol relative and existing absolute URLs are unaffected, but this should allow for significant improvements to consistency, especially with local form actions and local image & script libraries.
- Some fluff code has been removed from the front end of the Iframe method.
- Forgot to remove class methods that were no longer in use, which triggered E_NOTICE errors in some sites.
- Content Mask URL’s without a protocol have
http://added to them, since not all sites are secure yet. However, if your site is secure, it won’t display
http://iframes. Iframe method now checks if your site is secured with ssl, and if so force updates the Content Mask URL’s protocol to
https://. If the content still is blank, it’s because the iframe’d site is insecure and wouldn’t show up either way.
- If other (namely really large) metaboxes were hooked in, Content Mask Settings were hard to see. Moved inline CSS and JS to separate files and improved the design of the metabox to make it stand out much more when buried deeply in the admin.
- Elegant Theme’s “Bloom” was interfering and still being hooked. It’s now been forcefully unhooked on Content Mask pages (regardless of content displayed)
- Made Content Mask Method an array to allow for easier updating/additions in the future
- Provided better URL validation on the front end
get_page_contentfunctions cURL methods with integrated WP HTTP API methods instead
- Added custom sanitization functions for text (URL) inputs, select boxes, and checkboxes.
- Escaped post meta field values when returned in the admin and front-end.
- Initial Public Repository Release