Widget Logic
by Widgetlogic.org 4.4 (188 reviews)

Widget Logic

Widget Logic lets you control on which pages widgets appear using WP's conditional tags.

Widget Logic ranks #443 among WordPress.org plugins with 100,000+ active installations, is #45 of 8,295 in the Customization category, a 4.4/5 rating from 188 reviews, and was last updated Jan 15, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Tested up to WP 6.9 (Current: 7.0.2)
v6.0.9 Current Version v6.0.9
Updated 6 months ago Last Update on 15 Jan, 2026
Refreshed 12 hours ago Last Refreshed on
#45 of 8,295 in Customization Top 1% by installs Downloads -16.7% this week
View on WordPress.org
Rank
#443
No change
Active Installs
100K+
-12.3%
KW Avg Position
42.8
0.4 better
Downloads
3.2M
+287 today
Support Resolved
0%
No change
Rating
88%
Review 4.4 out of 5
4.4 (188 reviews)

Next Milestone 200K

Total Progress 12.7%
100K+ 200K+
158
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 87,293 more installs to reach 200K+

Rank Changes

421 432 443 454 465 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
421 432 443 454 465 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
421 432 443 454 465 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
421 432 443 454 465 29-04-2026 30-04-2026 01-05-2026 02-05-2026 03-05-2026 04-05-2026 05-05-2026 06-05-2026 07-05-2026 08-05-2026 09-05-2026 10-05-2026 11-05-2026 12-05-2026 13-05-2026 14-05-2026 15-05-2026 16-05-2026 17-05-2026 18-05-2026 19-05-2026 20-05-2026 21-05-2026 22-05-2026 23-05-2026 24-05-2026 25-05-2026 26-05-2026 27-05-2026 28-05-2026 29-05-2026 30-05-2026 31-05-2026 01-06-2026 02-06-2026 03-06-2026 04-06-2026 05-06-2026 06-06-2026 07-06-2026 08-06-2026 09-06-2026 10-06-2026 11-06-2026 12-06-2026 13-06-2026 14-06-2026 15-06-2026 16-06-2026 17-06-2026 18-06-2026 19-06-2026 20-06-2026 21-06-2026 22-06-2026 23-06-2026 24-06-2026 25-06-2026 26-06-2026 27-06-2026 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
Current #443
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

150 200 250 300 350 400 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
150 200 250 300 350 400 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
150 200 250 300 350 400 28-06-2026 29-06-2026 30-06-2026 01-07-2026 02-07-2026 03-07-2026 04-07-2026 05-07-2026 06-07-2026 07-07-2026 08-07-2026 09-07-2026 10-07-2026 11-07-2026 12-07-2026 13-07-2026 14-07-2026 15-07-2026 16-07-2026 17-07-2026 18-07-2026 19-07-2026 20-07-2026 21-07-2026 22-07-2026 23-07-2026 24-07-2026 25-07-2026 26-07-2026 27-07-2026 28-07-2026
0 500 1K 1.5K 2K 29-04-2026 02-05-2026 05-05-2026 08-05-2026 11-05-2026 14-05-2026 17-05-2026 20-05-2026 23-05-2026 26-05-2026 29-05-2026 01-06-2026 04-06-2026 07-06-2026 10-06-2026 13-06-2026 16-06-2026 19-06-2026 22-06-2026 25-06-2026 28-06-2026 01-07-2026 04-07-2026 07-07-2026 10-07-2026 13-07-2026 16-07-2026 19-07-2026 22-07-2026 25-07-2026 28-07-2026
0 5K 10K 15K 20K 28-07-2025 09-08-2025 21-08-2025 02-09-2025 14-09-2025 26-09-2025 08-10-2025 20-10-2025 01-11-2025 13-11-2025 25-11-2025 07-12-2025 19-12-2025 31-12-2025 12-01-2026 24-01-2026 05-02-2026 17-02-2026 01-03-2026 13-03-2026 25-03-2026 06-04-2026 18-04-2026 30-04-2026 12-05-2026 24-05-2026 05-06-2026 17-06-2026 29-06-2026 11-07-2026 23-07-2026 28-07-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

4.4
188 reviews
Overall 88%
5
153 (81%)
4
8 (4%)
3
2 (1%)
2
2 (1%)
1
23 (12%)

Tracked Keywords

Showing 5 of 5
Keyword Position Change Type Updated
conditional-tags 4 Tag 1 day ago
gutenberg widgets 13 Tag 1 day ago
widget 18 Tag 1 day ago
sidebar 22 Tag 1 day ago
blocks 157 Tag 1 day ago

Unlock Keyword Analytics

Track keyword rankings, search positions, and discover new ranking opportunities with a Pro subscription.

  • Full keyword position tracking
  • Historical ranking data
  • Competitor keyword analysis
Upgrade to Pro

Security History

Source: WPVulnerability

2 known vulnerabilities on record · 1 in the last 24 months · checked 7 hours ago

  1. UNPATCHED

    Widget Logic [widget-logic] <= 6.0.5 (unfixed + closed)

    CVE-2025-32222 · No fix released

  2. Widget Logic [widget-logic] < 5.10.3 (closed)

    CVE-2019-12826 · Fixed in v5.10.3

TL;DR

AI summary of the plugin's readme

Widget Logic is for WordPress site owners and theme developers who need fine-grained control over where widgets display. It solves the problem of showing or hiding widgets on specific pages by adding a logic field to each widget that evaluates WP conditional tags or custom PHP code.

  • Per-widget conditional display logic
  • Gutenberg widgets editor support
  • Classic Editor support
  • Pre-installed Live Match widget
  • Custom PHP functions whitelist filter
  • wp_reset_query fix option
  • Configurable load timing option
  • Disable widget logic caching

Frequently Asked Questions

Common questions about Widget Logic

Yes, you can! Starting from 6.0.0 you can use Widget Logic in Gutenberg widgets and in Classic Widgets. So if you have earlier version, please update plugin.
Switch to the default theme. If the problem goes away, your theme may be interfering with the WP conditional tags or how widgets work Try the wp_reset_query option. If your theme performs custom queries before calling the dynamic sidebar this might help. Try a different 'Load logic' point. Most wordpress conditional tags only work 'after query variables set', but some plugins may require evaluation earlier or later. The 'Evaluate widget logic more than once' option may be needed if you have to use an early 'Load logic' point. I'm getting errors that read like "PHP Parse error… … eval()'d code on line 1" You have a PHP syntax error in one of your widget's Widget Logic fields. Review them for errors. You might find it easiest to check by using 'Export options' and reading the code there (Though be aware that single and double quotes are escaped with multiple backslash characters.) If you are having trouble finding the syntax error, a simple troubleshooting method is to use 'Export options' to keep a copy and then blank each Widget Logic field in turn until the problem goes. Once you've identified the problematic code, you can restore the rest with 'Import options'. It's causing problems with Woo Commerce / other popular plugin This is often, not always, fixed by trying the different 'Load Logic' options. The 'after query variables set' option looks like it might be a better default, try it.
Since v .50 the widget logic code runs such that when dynamic_sidebar is called in a theme's code it will 'return false' if no widgets are present. In such cases many themes are coded to put in some default sidebar text in place of widgets, which is what you are seeing. Your options, if you want this default sidebar content gone, are to either edit the theme, or as a work around, add an empty text widget (no title, no content) to the end of the sidebar's widget list.
There is some confusion between the Main Page and the front page. If you want a widget on your 'front page' whether that is a static page or a set of posts, use is_front_page(). If it is a page using is_page(x) does not work. If your 'front page' is a page and not a series of posts, you can still use is_home() to get widgets on that main posts page (as defined in Admin > Settings > Reading). Logic using is_page() doesn't work I believe this is fixed in 5.7.0. Let me know if that is not the case. If your theme calls the sidebar after the loop you should find that the wp_reset_query option fixes things. This problem is explained on the is_page codex page.
Take care with your conditional tags. There is both an in_category and is_category tag. One is used to tell if the 'current' post is IN a category, and the other is used to tell if the page showing IS for that category (same goes for tags etc). What you want is the case when: (this page IS category X) OR (this is a single post AND this post is IN category X)
Have a go at it yourself first. Check out the 'Writing Logic Code' section under Other Notes.
This is sort of deliberate. I originally wrote it to be as flexible as possible with the thought of writing a drag'n'drop UI at some point. I never got round to it, because (I'm lazy and) I couldn't make it both look nice and let you fall back to 'pure code' (for the possibilities harder to cater for in a UI). The plugin Widget Context presents a nice UI and has a neat 'URL matching' function too. Widgets appear when they shouldn't It might be that your theme performs custom queries before calling the sidebar. Try the wp_reset_query option. Alternatively you may have not defined your logic tightly enough. For example when the sidebar is being processed, in_category('cheese') will be true if the last post on an archive page is in the 'cheese' category. Tighten up your definitions with PHPs 'logical AND' &&, for example:

Sign In / Register

You need to sign in or register to use this feature.