How to modify the output of any WordPress shortcode

Assume we have some plugin called AAA and it has built-in shortcode aaa_content and its usage is like this:

[AAA_content title=”Recent news” id=”23″]

Now we want to change its output HTML.

In WordPress, the output of any 3rd party function can be changed only if it has apply_filters() filtered output. Unfortunately not all functions and shortcodes have such filter in output. So it is almost impossible to modify its output without editing the plugin’s source file.

And as we know, editing the plugin file is always bad idea. The changes will be erased just in the next update.

So we have some different approach for such cases.

For example, here is one idea, which is subject of this blog post.

Creating parent shortcode which handles the output of the original shortcode.

So let’s declare and build that alternative shortcode.

Continue reading “How to modify the output of any WordPress shortcode”

Find the file where the given function is defined

In single-app, micro-service development almost all functions belong to you or to your team, so no need to know who defined the given function – you probably know it already.

But in CMS development some you may want to find the file where the given function is defined.

It might be WP core, template functions, theme or any of active plugins.

To find it you can use built-in PHP class called “ReflectionFunction”.

For example create such simple hook.

Continue reading “Find the file where the given function is defined”

Set different “products per page” number for specified WooCommerce Category

You might want to get different product per pages for each category.

For example for Phones category, you want to display 10 phones per page, for Furniture, you want only 4 products per page, for Accessories, you want to display 100 products per page.

To achieve that is easy, here is how:

Continue reading “Set different “products per page” number for specified WooCommerce Category”

Remove parent categories from WooCommerce Related Products

Remove parent categories from WooCommerce Related Products

Say you are selling Phones, Tablets, Smart Watches etc. – and all of those are children of parent category called Gadgets. In this case you have probably faced non-relevant related-products in product-single page of your WooCommerce website.

So, the idea is this: To remove parent categories from related-categories algorithm and to force WooCommerce to show related categories by last child category only (tablets for a tablet, phones for a phone etc. not tablets for a phone)

So let’s write small snippet for this:

Continue reading “Remove parent categories from WooCommerce Related Products”

Cookie based permission in htaccess – restrict WordPress admin access by IP address

In my previous post about htaccess based restriction i showed how to restrict wp-admin or other file/page access by IP address. That’s very good solution when we are using VPN static IP.

But if we are using multiple connections (office, home, caffee, or multiple VPN-s with different IP addresses), then we need to have some easier solution.

And that can be cookie-based permission. Let’s see how to do that.

Continue reading “Cookie based permission in htaccess – restrict WordPress admin access by IP address”

Ready to use snippet for WP REST API

WP-REST is great tool to connect 3rd party applications to your website and interact with it.

If you want to use it deeply in your website, you need to go to official website and read its handbook.

but what if you just want to use it for some small task and you don’t want to lose more time on reading docs? Then you might need JS code for frontend, and some backend codes for initialization and processing.

In this article i am giving you ready to use snippet, you just put it to your theme’s functions.php and it works.

Of course you will need to change the codes inside response function. In my example i am giving you an example which counts post_views.

Let’s create simple WordPress rest api custom endpoint. Here we go:

Continue reading “Ready to use snippet for WP REST API”