Description
This plugin will monitor your blog looking for broken links and let you know if any are found.
Features
- Monitors links in your posts, pages, comments, the blogroll, and custom fields (optional).
- Detects links that don’t work, missing images and redirects.
- Notifies you either via the Dashboard or by email.
- Makes broken links display differently in posts (optional).
- Prevents search engines from following broken links (optional).
- You can search and filter links by URL, anchor text and so on.
- Links can be edited directly from the plugin’s page, without manually updating each post.
- Highly configurable.
Basic Usage
Once installed, the plugin will begin parsing your posts, bookmarks (AKA blogroll) and other content and looking for links. Depending on the size of your site this can take from a few minutes up to an hour or more. When parsing is complete, the plugin will start checking each link to see if it works. Again, how long this takes depends on how big your site is and how many links there are. You can monitor the progress and tweak various link checking options in Settings -> Link Checker.
The broken links, if any are found, will show up in a new tab of the WP admin panel – Tools -> Broken Links. A notification will also appear in the “Broken Link Checker” widget on the Dashboard. To save display space, you can keep the widget closed and configure it to expand automatically when problematic links are detected. E-mail notifications need to be enabled separately (in Settings -> Link Checker).
WordpPress Kubernetes .htaccess configuration
Introduction
This chart bootstraps a WordPress deployment on a Kubernetes cluster using the Helm package manager.
It also packages the Bitnami MariaDB chart which is required for bootstrapping a MariaDB deployment for the database requirements of the WordPress application.
Bitnami charts can be used with Kubeapps for deployment and management of Helm Charts in clusters. This chart has been tested to work with NGINX Ingress, cert-manager, fluentd and Prometheus on top of the BKPR.
Prerequisites
Disabling
.htaccess
For performance and security reasons, it is a good practice to configure Apache with
AllowOverride None
. Instead of using.htaccess
files, Apache will load the same dircetives at boot time. These directives are located in/opt/bitnami/wordpress/wordpress-htaccess.conf
. The container image includes by default these directives all of the default.htaccess
files in WordPress (together with the default plugins). To enable this feature, install the chart with the following value:helm install stable/wordpress --set allowOverrideNone=yes
However, some plugins may include
.htaccess
directives that will not be loaded whenAllowOverride
is set toNone
. A way to make them work would be to create your ownwordpress-htaccess.conf
file with all the required dircectives to make the plugin work. After creating it, then create a ConfigMap with it.kubectl create cm custom-htaccess --from-file=/path/to/wordpress-htaccess.conf
Then, install the chart:
helm install stable/wordpress --set allowOverrideNone=yes --set customHTAccessCM=custom-htaccess
Upgrading
Newspack announces second set of pilot newsrooms; first U.S. site relaunches on new platform
Newspack has chosen a group of 34 news organizations to guide the next phase of development of a new WordPress-based platform for small and medium-sized publishers. They will join the existing pilot newsrooms, including Oklahoma Watch, which just relaunched on the new platform. All sites are expected to relaunch on the Newspack platform by the end of February.
WordPress Performance – Breaking It Down by HTTP Requests
1. Disable Emojis with Code#The first way to disable emojis is you can put the following code into your
functions.php
file.<span class="token comment">/** * Disable the emoji's */</span> <span class="token keyword">function</span> <span class="token function">disable_emojis</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_head'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_detection_script'</span><span class="token punctuation">,</span> <span class="token number">7</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'admin_print_scripts'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_detection_script'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_print_styles'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_styles'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'admin_print_styles'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'print_emoji_styles'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'the_content_feed'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'comment_text_rss'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">remove_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wp_mail'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'wp_staticize_emoji_for_email'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">add_filter</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'tiny_mce_plugins'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'disable_emojis_tinymce'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">add_action</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'init'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'disable_emojis'</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">/** * Filter function used to remove the tinymce emoji plugin. * * @param array $plugins * @return array Difference betwen the two arrays */</span> <span class="token keyword">function</span> <span class="token function">disable_emojis_tinymce</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token function">is_array</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token function">array_diff</span><span class="token punctuation">(</span> <span class="token variable">$plugins</span><span class="token punctuation">,</span> <span class="token keyword">array</span><span class="token punctuation">(</span> <span class="token single-quoted-string string">'wpemoji'</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token keyword">array</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">} </span>
Step 6. Host Google Fonts#
Next, if we look closer we can see there are 4 requests being generated to fonts.gstatic.com. And this is to load Google fonts, which is included in the default WordPress theme. In our example, it is loading different font weights for Merriweather and Montserrat.
https://fonts.googleapis.com/css?family=Merriweather%3A400%2C700%2C900%2C400italic%2C700italic%2C900italic%7CMontserrat%3A400%2C700%7C&subset=latin%2Clatin-ext https://fonts.gstatic.com/s/montserrat/v7/IQHow_FEYlDC4Gzy_m8fcoWiMMZ7xLd792ULpGE4W_Y.woff2 https://fonts.gstatic.com/s/merriweather/v13/RFda8w1V0eDZheqfcyQ4EOgdm0LZdjqr5-oayXSOefg.woff2 https://fonts.gstatic.com/s/montserrat/v7/zhcz-_WihjSQC0oHJ9TCYPk_vArhqVIZ0nv9q090hN8.woff2
It always better to reduce the number of external DNS lookups and also focus on having a single HTTP/2 connection if possible. Every external lookup introduces its own set of latency issues, content download times, TLS negotiations, etc. So what we are going to do is move the Google fonts to our CDN. This way they load from the same place as the rest of our assets.
You can check out our in-depth tutorial on how to migrate Google Fonts to your CDN. This can also be used to simply host them directly on your web server as well, if you aren’t using a CDN. We quickly download the following Google fonts from
https://google-webfonts-helper.herokuapp.com
and host them on our server in a folder called “fonts.”<span class="token punctuation"> </span>
Step 7. Disable Gravatars#
As you can see we are almost down to a single HTTP/2 connection with no external DNS lookups. The only thing left is that call to gravatar.com. Thankfully they are using HTTP/2 now, but unless you really want avatars, you can disable them.
This can easily be remove by un-checking the “show avatars” in the discussion setting of your WordPress dashboard.
<span class="token punctuation"> </span>
By removing the call to gravatar.com we are now down to 11 HTTP requests and are using a single HTTP/2 connection for external assets on our CDN.