[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgdYEEaIZGUip2IdR9tAGKFmEWAQtxd4gEnRZP46nuFU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":21,"download_link":22,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25,"vulnerabilities":26,"developer":27,"crawl_stats":24,"alternatives":34,"analysis":151,"fingerprints":197},"wp-spellcheck","WP-Spellcheck","1.0","Ben","https:\u002F\u002Fprofiles.wordpress.org\u002Fbforchhammer\u002F","\u003Cp>\u003Cstrong>TinyMCE SpellChecker API\u003C\u002Fstrong> – this plugin provides action\u002Ffilter hooks to allow easy customisation of the TinyMCE SpellChecker.\u003C\u002Fp>\n\u003Cp>This plugin was created to solve the problem of not being able to use GoogleSpell behind a firewall. For background information on the issue read the discussions on \u003Ca href=\"https:\u002F\u002Fcore.trac.wordpress.org\u002Fticket\u002F9798\" rel=\"nofollow ugc\">trac ticket #9798\u003C\u002Fa>. \u003Cem>The ultimate goal of this plugin is to be merged into WordPress Core.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>You need this plugin if…\u003C\u002Fp>\n\u003Cul>\n\u003Cli>You want to write a plugin for the TinyMCE SpellChecker. This plugin will provide you with respective \u003Cstrong>hooks\u003C\u002Fstrong> that allow to control which SpellChecker Engine is used, adjust the configuration used for initialisation of the engine and manipulate spellchecking results (independent of engine).\u003C\u002Fli>\n\u003Cli>You are behind a \u003Cstrong>firewall\u003C\u002Fstrong> and you’d like to use the \u003Cstrong>Google Spellchecker\u003C\u002Fstrong>. This plugin contains a customised version of GoogleSpell that uses the new Http Transportation methods added in WordPress 2.8 which include \u003Cstrong>Proxy Support\u003C\u002Fstrong> for all external requests.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin also contains a simple sub-plugin called “WP-SpellCheck Exceptions” which allows you to add custom words to the spellchecking dictionary. Note that this plugin is more a proof of concept than a complete\u002Ffull-fleged solution. (It does \u003Cstrong>not\u003C\u002Fstrong> have any kind of visual administration; it only adds “WordPress” as an exception at the moment).\u003C\u002Fp>\n","TinyMCE SpellChecker API - this plugin provides action\u002Ffilter hooks to allow easy customisation of the TinyMCE SpellChecker.",60,2727,0,"2009-05-29T12:52:00.000Z","2.8","",[18,19,20],"proxy","spellcheck","tinymce","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fwp-spellcheck\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-spellcheck.1.0.zip",85,null,"2026-03-15T15:16:48.613Z",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":23,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"bforchhammer",2,70,30,84,"2026-04-04T16:58:58.723Z",[35,59,80,103,126],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":56,"download_link":57,"security_score":58,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"black-studio-tinymce-widget","Black Studio TinyMCE Widget","2.7.3","Black Studio","https:\u002F\u002Fprofiles.wordpress.org\u002Fblack-studio\u002F","\u003Cp>This plugin adds a new \u003Ccode>Visual Editor\u003C\u002Fcode> widget type that allows you to insert rich text and media objects in your sidebars with no hassle. With Black Studio TinyMCE Widget you will be able to edit your widgets in a WYSIWYG manner using the native WordPress TinyMCE editor, just like you do in posts and pages. And if you are a developer you may still switch back and forth from Visual to HTML mode.\u003C\u002Fp>\n\u003Cp>For years the default WordPress text widget has been very basic and it required HTML knowledge to add formatting and images\u002Fmedia to the text. This plugin was born in 2011 to overcome these limitations. After a long time, in June 2017, version 4.8 of WordPress finally introduced a new text widget that included the ability to manage text widgets with the visual editor. The new widget available in WordPress core could now be used as a basic replacement of Black Studio TinyMCE Widget, but the plugin still offers some additional features, so it remains a must-have for advanced users.\u003C\u002Fp>\n\u003Ch4>Basic Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Add rich text widgets to your sidebars and edit them using the TinyMCE visual editor\u003C\u002Fli>\n\u003Cli>Switch between Visual mode and HTML mode (including Quicktags toolbar)\u003C\u002Fli>\n\u003Cli>Insert images, videos, and other media from WordPress Media Library\u003C\u002Fli>\n\u003Cli>Insert links to existing WordPress pages\u002Fposts or external resources\u003C\u002Fli>\n\u003Cli>Support for shortcodes, smilies and embed in widget text (including preview)\u003C\u002Fli>\n\u003Cli>Support for the Block-based Widgets Editor introduced with WordPress 5.8\u003C\u002Fli>\n\u003Cli>Support for Customizer with live preview and quick edit\u003C\u002Fli>\n\u003Cli>Support for widgets accessibility mode\u003C\u002Fli>\n\u003Cli>Compatible with multi-site (WordPress networks)\u003C\u002Fli>\n\u003Cli>Compatible with the most common multi-language plugins\u003C\u002Fli>\n\u003Cli>Compatible with Page Builder plugin by SiteOrigin\u003C\u002Fli>\n\u003Cli>Translations available in 20+ languages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Advanced Features\u003C\u002Fh4>\n\u003Cp>These features are what makes this plugin better than the WordPress (4.8+) native widget:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Full featured TinyMCE Visual Editor (the same you have for pages and posts)\u003C\u002Fli>\n\u003Cli>Wide text area for an enhanced editing experience\u003C\u002Fli>\n\u003Cli>Compatible with 3rd party TinyMCE customization plugins (TinyMCE Advanced, WP Edit, …)\u003C\u002Fli>\n\u003Cli>Support for distraction-free (fullscreen) editing mode \u003C\u002Fli>\n\u003Cli>Option to “Automatically add paragraphs” to widget text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>About the plugin\u003C\u002Fh4>\n\u003Cp>The story of the plugin was featured in a talk at WordCamp Europe 2018 in Belgrade.\u003Cbr \u002F>\nSee the video \u003Ca href=\"https:\u002F\u002Fwordpress.tv\u002F2018\u002F07\u002F11\u002Ffrancesco-canovi-marco-chiesi-once-upon-a-time-there-was-a-plugin\u002F\" rel=\"nofollow ugc\">Once upon a time, there was a plugin…\u003C\u002Fa> on WordPress.tv.\u003C\u002Fp>\n\u003Ch4>Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002F\" rel=\"nofollow ugc\">Author’s web site\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002Fwordpress-plugins\u002Fblack-studio-tinymce-widget\u002F\" rel=\"nofollow ugc\">Plugin’s page\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fblack-studio-tinymce-widget\u002Ffaq\u002F\" rel=\"ugc\">FAQ\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fblack-studio-tinymce-widget\" rel=\"ugc\">Support forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Follow us on \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fblackstudioita\" rel=\"nofollow ugc\">Twitter\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fblackstudiocomunicazione\" rel=\"nofollow ugc\">Facebook\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fblack-studio\" rel=\"nofollow ugc\">LinkedIn\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblack-studio\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Get involved\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Developers can contribute to the source code on our \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fblack-studio\u002Fblack-studio-tinymce-widget\" rel=\"nofollow ugc\">GitHub repository\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Translators can contribute through the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fblack-studio-tinymce-widget\" rel=\"nofollow ugc\">Official WordPress Translation platform\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Users can contribute by leaving a 5 stars \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fview\u002Fplugin-reviews\u002Fblack-studio-tinymce-widget#postform\" rel=\"ugc\">review\u003C\u002Fa> or making a \u003Ca href=\"https:\u002F\u002Fwww.blackstudio.it\u002Fen\u002Fwordpress-plugins\u002Fblack-studio-tinymce-widget\u002F\" rel=\"nofollow ugc\">donation\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","The visual editor widget for WordPress.",200000,11110927,96,192,"2026-03-08T20:09:00.000Z","6.9.4","3.1","5.2",[52,20,53,54,55],"editor","visual","widget","wysiwyg","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fblack-studio-tinymce-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fblack-studio-tinymce-widget.2.7.3.zip",100,{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":69,"num_ratings":70,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":16,"tags":74,"homepage":78,"download_link":79,"security_score":23,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"addquicktag","AddQuicktag","2.6.1","Frank Bueltge","https:\u002F\u002Fprofiles.wordpress.org\u002Fbueltge\u002F","\u003Cp>This plugin makes it easy to add Quicktags to the html – and visual-editor. It is possible to export your Quicktags as a JSON – file that can be imported in other installations of the plugin.\u003C\u002Fp>\n\u003Cp>WP-AddQuicktag for WordPress is originally created by \u003Ca href=\"http:\u002F\u002Froel.meurders.nl\u002F\" title=\"Roel Meurders\" rel=\"nofollow ugc\">Roel Meurders\u003C\u002Fa>. The versions in the Repo of AddQuicktag are newer versions, this is a complete rewrite of version 2.0.0 with more functionality.\u003C\u002Fp>\n\u003Cp>The plugin can add configurable custom quicktags to the editor of every post type, including custom post types from other sources. You may choose a post type for which a quicktag shall show up in the editor.\u003Cbr \u002F>\nIf this should not work perfectly well for you, you may also use the hooks inside the plugin. See the examples and hint inside the tab “\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Faddquicktag\u002Fother_notes\u002F\" rel=\"ugc\">Other Notes\u003C\u002Fa>“.\u003C\u002Fp>\n\u003Ch4>Bugs, technical hints or contribute\u003C\u002Fh4>\n\u003Cp>Please give me feedback, contribute and file technical bugs on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbueltge\u002Faddquicktag\" rel=\"nofollow ugc\">GitHub Repo\u003C\u002Fa>. The Wiki on this page has also several hints for the plugin.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Crafted by \u003Ca href=\"https:\u002F\u002Finpsyde.com\" rel=\"nofollow ugc\">Inpsyde\u003C\u002Fa> · Engineering the web since 2006.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Hook for custom post types\u003C\u002Fh4>\n\u003Cp>The plugin adds the quicktag by default to post types\u002FID \u003Ccode>post\u003C\u002Fcode>, \u003Ccode>page\u003C\u002Fcode> and \u003Ccode>comment\u003C\u002Fcode>. To use the plugin for other post types also you may use a filter; see the following example or an example plugin in the \u003Ca href=\"https:\u002F\u002Fgist.github.com\u002F1595155\" rel=\"nofollow ugc\">Gist 1595155\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F\u002F add custom function to filter hook 'addquicktag_post_types'\nadd_filter( 'addquicktag_post_types', 'my_addquicktag_post_types' );\n\u002F**\n * Return array $post_types with custom post types\n *\n * @param   $post_type Array\n * @return  $post_type Array\n *\u002F\nfunction my_addquicktag_post_types( $post_types ) {\n\n    $post_types[] = 'edit-comments';\n    return $post_types;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Hook for custom pages\u003C\u002Fh4>\n\u003Cp>It is possible also to filter the pages inside the backend. By default the scripts include the pages \u003Ccode>post.php\u003C\u002Fcode>, \u003Ccode>comment.php\u003C\u002Fcode>. The following example changes this for an another page.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'addquicktag_pages', 'my_addquicktag_pages' );\n\u002F**\n * Return array $page with custom page strings\n *\n * @param   $page Array\n * @return  $page Array\n *\u002F\nfunction my_addquicktag_pages( $page ) {\n\n    $page[] = 'edit-comments.php';\n    return $page;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>See this Gist as an example for how to add the Quicktags to the editor of comments: \u003Ca href=\"https:\u002F\u002Fgist.github.com\u002F3076698\" rel=\"nofollow ugc\">Gist: 3076698\u003C\u002Fa>.\u003Cbr \u002F>\nIf you want the Quicktags of this plugin to work on the Quickedit of comments as well, remove the \u003Ccode>.example\u003C\u002Fcode>-part of \u003Ccode>addquicktag_quickedit_comment.php.example\u003C\u002Fcode> filename. The file is a stand alone helper plugin for Add Quicktag. You’ll need to activate this file (plugin) separately in ‘Manage Plugins’.\u003C\u002Fp>\n\u003Ch4>Hook for custom buttons\u003C\u002Fh4>\n\u003Cp>It is possible to add custom buttons to the editor, if the plugin is active.\u003C\u002Fp>\n\u003Cp>The following example adds buttons. The params inside the array are the same as in the settings of the plugin.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if ( class_exists( 'Add_Quicktag' ) ) :\nadd_filter( 'addquicktag_buttons', 'my_addquicktag_buttons' );\n\nfunction my_addquicktag_buttons( $buttons ) {\n\n    $buttons[] = array(\n        'text'          => 'Permalink',\n        'title'         => '',\n        'start'         => '[permalink]',\n        'end'           => '[\u002Fpermalink]',\n        'access'        => '',\n        'order'         => 1,\n        'visual'        => 1,\n        'post'          => 0,\n        'page'          => 1,\n        'comment'       => 0,\n        'edit-comments' => 0\n    );\n    $buttons[] = array(\n        'text'          => 'Button',\n        'title'         => '',\n        'start'         => '\u003Cspan class=\"border blue\">',\n        'end'           => '\u003C\u002Fspan>',\n        'access'        => '',\n        'order'         => 2,\n        'visual'        => 1,\n        'post'          => 0,\n        'page'          => 1,\n        'comment'       => 0,\n        'edit-comments' => 0\n    );\n    return $buttons;\n}\nendif;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>License\u003C\u002Fh4>\n\u003Cp>Good news, this plugin is free for everyone! Since it’s released under the GPL, you can use it free of charge on your personal or commercial blog. But if you enjoy this plugin, you may consider to thank me and leave a \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Faddquicktag\u002Freviews\u002F#new-post\" rel=\"ugc\">positive review\u003C\u002Fa> for the time I’ve spent writing and supporting this plugin. And I really don’t want to know how many hours of my life this plugin has already eaten 😉\u003C\u002Fp>\n","This plugin makes it easy to add Quicktags to the html - and visual-editor.",100000,1385273,94,44,"2021-05-20T13:37:00.000Z","5.7.15","4.0",[75,76,52,77,20],"add-buttons","button","quicktag","http:\u002F\u002Fbueltge.de\u002Fwp-addquicktags-de-plugin\u002F120\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Faddquicktag.2.6.1.zip",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":69,"num_ratings":90,"last_updated":91,"tested_up_to":48,"requires_at_least":92,"requires_php":93,"tags":94,"homepage":98,"download_link":99,"security_score":100,"vuln_count":101,"unpatched_count":13,"last_vuln_date":102,"fetched_at":25},"post-and-page-builder","Post and Page Builder by BoldGrid – Visual Drag and Drop Editor","1.27.10","BoldGrid","https:\u002F\u002Fprofiles.wordpress.org\u002Fboldgrid\u002F","\u003Ch4>What is the Post and Page Builder by BoldGrid?\u003C\u002Fh4>\n\u003Cp>The Post and Page Builder is an intuitive drag and drop editor plugin and the easiest way to create and edit pages for any theme. Whether you are new to WordPress or consider yourself a pro, BoldGrid solutions will make your WordPress life better. Stop dealing with site-breaking shortcodes and theme restricted editors. You are going to love just how fast and easily you can create beautiful websites now.\u003C\u002Fp>\n\u003Cp>Try out the \u003Ca href=\"https:\u002F\u002Fwww.boldgrid.com\u002Fcentral\u002Fget-it-now?redirect_url=wp-admin%2Fpost-new.php%3Fpost_type%3Dpage&plugins=post-and-page-builder&utm_source=ppb-wp-repo&utm_medium=readme&utm_campaign=ppb\" rel=\"nofollow ugc\">BoldGrid Demo\u003C\u002Fa> on Cloud WordPress to see for yourself!\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FQoIb7OhV9ys?version=3&rel=0&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Drag and Drop Editing\u003C\u002Fstrong> – Create simple or complex layouts with our unique editing experience\u003C\u002Fli>\n\u003Cli>\u003Cstrong>BoldGrid Blocks\u003C\u002Fstrong> – Hundreds of professional layout designs to work from\u003C\u002Fli>\n\u003Cli>\u003Cstrong>100% Mobile-friendly\u003C\u002Fstrong> – Responsive layouts and controls to change the design per device\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Fonts\u003C\u002Fstrong> – Change font family, font size, font color, letter spacing, line height and more\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Theme Compatibility\u003C\u002Fstrong> – Our WordPress Page Builder is designed to work with any WordPress Theme\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Backgrounds\u003C\u002Fstrong> – Add background images, gradient backgrounds, patterns, overlays, and background colors\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fast and Free Support\u003C\u002Fstrong> – Growing Community and knowledge base\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Animations\u003C\u002Fstrong> – Add effects as the user scrolls down the page with Animate.css or background parallax scroll effects\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Controls\u003C\u002Fstrong> – Add margin, padding, box shadows, borders, alignment and more to almost any element\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bootstrap Grid\u003C\u002Fstrong> – Drag and drop controls for bootstrap rows and columns elements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Add Custom CSS Classes\u003C\u002Fstrong> – Complete control over any element\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Clean, Simple Markup\u003C\u002Fstrong> – Easily create a professionally coded template without experience\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Google Maps\u003C\u002Fstrong> – Embed and customize maps into your post or page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Web Components\u003C\u002Fstrong> – High quality reusable and customizable HTML elements\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Font Awesome Icons\u003C\u002Fstrong> – Insert and customize any Font Awesome icons\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CSS Grid\u003C\u002Fstrong> – Full width, column and row based layouts\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image Editing\u003C\u002Fstrong> – Apply image filters and automatically crop images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Button Designs\u003C\u002Fstrong> – Fully customizable button designs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Custom Post Types\u003C\u002Fstrong> – Save and reuse full page layouts or BoldGrid Block designs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WordPress Editor Integration\u003C\u002Fstrong> – Integrated into TinyMCE so you can keep the same workflow\u003C\u002Fli>\n\u003Cli>\u003Cstrong>No Need for Shortcodes!\u003C\u002Fstrong> – Faster page loads by saving your custom HTML5 elements\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Additional Features when used with other BoldGrid plugins:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Dozens of free layout templates\u003C\u002Fli>\n\u003Cli>Integrated with professional image banks\u003C\u002Fli>\n\u003Cli>Contact Forms\u003C\u002Fli>\n\u003Cli>On-page SEO recommendations for targeted search phrase\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Visit our website to learn more about additional \u003Ca href=\"https:\u002F\u002Fwww.boldgrid.com\u002Fwordpress-plugins\u002F?utm_source=ppb-wp-repo&utm_medium=demo-uri&utm_campaign=ppb\" rel=\"nofollow ugc\">BoldGrid plugins\u003C\u002Fa> to further improve your WordPress experience!\u003C\u002Fp>\n\u003Ch4>People Love BoldGrid\u003C\u002Fh4>\n\u003Cp>“It’s really the perfect starting point for just about any web project, allowing users to get their site up and running in very short time. ” – Digital.com\u003C\u002Fp>\n\u003Cp>“BoldGrid is a great extension to WordPress that will make my job a lot easier and faster while creating custom layouts and pages.” – Webhostingmedia.net\u003C\u002Fp>\n\u003Cp>“Well, I have seen many site builders but this is the only one that provides so many features.” – Woblogger.com\u003C\u002Fp>\n\u003Ch4>A Post and Page Builder That Works With Your Theme and Plugins\u003C\u002Fh4>\n\u003Cp>The Post and Page Builder by BoldGrid is designed to work with almost any WordPress theme. Add it to your existing website today, or try a BoldGrid theme for your new website. Alternatively, consider upgrading and using the powerful BoldGrid framework theme (available in Premium subscription) as an excellent time saver for agencies and developers.\u003C\u002Fp>\n\u003Ch4>A Post and Page Builder Stuffed With Pre-Designed Templates & Blocks\u003C\u002Fh4>\n\u003Cp>Create layouts and pages faster and easier than ever with Blocks by BoldGrid. Blocks are pre-built page sections consisting of various layouts of rows and columns prepopulated with content that can be edited visually or with HTML and CSS. Blocks utilize a wide variety of content that can be completely customized to fit your needs such as icons, buttons, free and premium images, font packs, and more.\u003C\u002Fp>\n\u003Ch4>A Post and Page Builder That Is Faster Than The Rest\u003C\u002Fh4>\n\u003Cp>The Post and Page Builder by BoldGrid is designed to create pages that load fast. BoldGrid ditches shortcodes in favor of clean markup that can be served quickly. That also means BoldGrid code is easy to assess and customize.\u003C\u002Fp>\n\u003Ch4>Coming Soon \u002F Maintenance Page\u003C\u002Fh4>\n\u003Cp>Great for making “under construction” or “coming soon” pages. You can create a simple page within minutes by using free professionally designed WordPress Blocks.\u003C\u002Fp>\n\u003Ch4>Bootstrap WYSIWYG Post & Page Builder for WordPress\u003C\u002Fh4>\n\u003Cp>Our drag and drop system is built on the Bootstrap Grid. You can drag columns, rows, and containers around your pages to make quick updates to pages.  Advanced CSS controls allow you to make pixel perfect designs.\u003C\u002Fp>\n\u003Ch4>Create Custom Color Palette\u003C\u002Fh4>\n\u003Cp>Choose your brand’s colors and we’ll help your design stay unified. Our unique color palette system is built with SASS and allows you to change all the colors on your site. You don’t have to choose from a few presets anymore!\u003C\u002Fp>\n","Post and Page Builder is a standalone plugin which adds functionality to the existing TinyMCE Editor.",60000,1729236,140,"2025-12-19T19:26:00.000Z","4.7","5.4",[95,96,52,97,20],"boldgrid","drag-and-drop","page-builder","https:\u002F\u002Fwww.boldgrid.com\u002Fboldgrid-editor\u002F?utm_source=ppb-wp-repo&utm_medium=plugin-uri&utm_campaign=ppb","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-and-page-builder.1.27.10.zip",95,10,"2026-01-05 00:00:00",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":111,"downloaded":112,"rating":113,"num_ratings":114,"last_updated":115,"tested_up_to":116,"requires_at_least":117,"requires_php":118,"tags":119,"homepage":124,"download_link":125,"security_score":58,"vuln_count":13,"unpatched_count":13,"last_vuln_date":24,"fetched_at":25},"varnish-http-purge","Proxy Cache Purge","5.7.0","Danila Vershinin","https:\u002F\u002Fprofiles.wordpress.org\u002Fdvershinin\u002F","\u003Cp>\u003Cstrong>This plugin \u003Cem>does not\u003C\u002Fem> install nor configure a cache proxy. It acts as an interface with such services.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>One common method of caching content for websites is via the use of reverse proxy caching. Common examples of this are \u003Ca href=\"https:\u002F\u002Fwww.varnish-cache.org\u002F\" rel=\"nofollow ugc\">Varnish\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwww.nginx.org\u002F\" rel=\"nofollow ugc\">NGINX\u003C\u002Fa>. These systems allow a website to update content and have the visitor’s experience cached without the need for complex plugins storing the files locally and using up a user’s disk space.\u003C\u002Fp>\n\u003Cp>A reverse proxy cache is installed in front of a server and reviews requests. If the page being requested is already cached, it delivers the cached content. Otherwise it generates the page and the cache on demand.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>The Proxy Cache Purge plugin sends a request to delete (aka flush) the cached data of a page or post every time it’s modified.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Cp>When content on a site is updated by WordPress, the plugin reaches out to the proxy cache service with the URL of the page, requesting the cache be deleted.\u003C\u002Fp>\n\u003Cp>Not all pages are deleted from the cache on every change. For example, when a post, page, or custom post type is edited, or a new comment is added, \u003Cem>only\u003C\u002Fem> the following pages will purge:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The front page\u003C\u002Fli>\n\u003Cli>The post\u002Fpage edited\u003C\u002Fli>\n\u003Cli>Any categories, tags, and\u002For custom taxonomies associated with the page\u003C\u002Fli>\n\u003Cli>Related feeds\u003C\u002Fli>\n\u003Cli>Associated JSON API pages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In addition, your \u003Cem>entire\u003C\u002Fem> cache will be deleted on the following actions:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Changing themes\u003C\u002Fli>\n\u003Cli>Pressing the \u003Cstrong>Empty Cache\u003C\u002Fstrong> button on the toolbar\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Plugins can hook into the purge actions as well, to filter their own events to trigger a purge.\u003C\u002Fp>\n\u003Cp>On a multisite network using subfolders, only \u003Cstrong>network admins\u003C\u002Fstrong> can purge the main site.\u003C\u002Fp>\n\u003Ch4>Development Mode\u003C\u002Fh4>\n\u003Cp>If you’re working on a site and need to turn off caching in one of two ways:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Add \u003Ccode>define( 'VHP_DEVMODE', true );\u003C\u002Fcode> to your \u003Ccode>wp-config.php\u003C\u002Fcode> file\u003C\u002Fli>\n\u003Cli>Go to Proxy Cache -> Settings and enable Debug Mode for 24 hours at a time\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>That will break cache on page loads. It is \u003Cem>not\u003C\u002Fem> recommended for production!\u003C\u002Fp>\n\u003Ch4>Cache Tags (BETA)\u003C\u002Fh4>\n\u003Cp>As of version 5.4.0, Proxy Cache Purge includes an \u003Cstrong>optional Cache Tags \u002F Surrogate Keys purge mode\u003C\u002Fstrong>. This feature is marked as \u003Cstrong>BETA\u003C\u002Fstrong> and is disabled by default.\u003C\u002Fp>\n\u003Cp>When enabled, the plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds cache-tag headers to WordPress responses (for example, tagging pages by post ID, post type, taxonomy terms, author, and archives).\u003C\u002Fli>\n\u003Cli>Uses tag-based purges instead of individual URL purges when content is updated, which can reduce purge traffic and improve consistency on complex sites.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Requirements:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A proxy cache that supports Cache Tags \u002F Surrogate Keys and advertises this via standard \u003Ccode>Surrogate-Capability\u003C\u002Fcode> headers (for example, \u003Ccode>Surrogate-Capability: vhp=\"Surrogate\u002F1.0 tags\u002F1\"\u003C\u002Fcode>).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>How to enable:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Go to \u003Cstrong>Proxy Cache \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Purge Method\u003C\u002Fstrong> and check \u003Cstrong>“Use Cache Tags (Surrogate Keys)”\u003C\u002Fstrong>. The checkbox is only enabled when your cache tells WordPress it supports tags (or when you explicitly enable it via a define).\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Alternatively, you can force-enable or force-disable detection via \u003Ccode>wp-config.php\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cp>define( ‘VHP_VARNISH_TAGS’, true );  \u002F\u002F Force treat cache as tag-capable\u003Cbr \u002F>\ndefine( ‘VHP_VARNISH_TAGS’, false ); \u002F\u002F Force treat cache as not tag-capable\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Because this feature depends on your cache configuration, it is recommended that you test it carefully in staging before enabling it on production.\u003C\u002Fp>\n\u003Ch4>Background Purging with WP-Cron\u003C\u002Fh4>\n\u003Cp>On busy sites, sending many PURGE requests directly from admin requests can slow things down. When you define \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> as \u003Ccode>true\u003C\u002Fcode> in \u003Ccode>wp-config.php\u003C\u002Fcode> (because you are running a real system cron that calls \u003Ccode>wp-cron.php\u003C\u002Fcode>), Proxy Cache Purge automatically switches to an asynchronous mode:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Purge requests (both URL-based and tag-based, when Cache Tags are enabled) are collected into a small per-site queue.\u003C\u002Fli>\n\u003Cli>The queue is processed by WP-Cron in the background, keeping your admin and content-editing actions responsive even when many URLs or tags must be invalidated.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Object-cache purges (the “Purge Database Cache” option) remain synchronous and are not affected by this behaviour. The Proxy Cache settings page and Site Health integration expose basic queue status so you can verify that background purging is healthy; if the queue appears large or very old, check that your system cron is correctly invoking WordPress cron.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Important: Cron Frequency and Cache Freshness\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When using background purging, the frequency of your system cron determines how quickly cache invalidations are processed. The longer the interval between cron runs, the longer visitors may see stale content after updates.\u003C\u002Fp>\n\u003Cp>For minimal stale content, run your system cron every minute:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>* * * * * \u002Fusr\u002Fbin\u002Fphp \u002Fvar\u002Fwww\u002Fhtml\u002Fwp-cron.php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If you can tolerate slightly longer delays, every 2-5 minutes is also acceptable. However, running cron less frequently (e.g., every 15 minutes) means cache purges may be delayed by that amount after content changes.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> Scheduled posts are handled specially. When a scheduled post is published via WP-Cron, the cache is purged synchronously within the same cron run, ensuring immediate cache invalidation without waiting for the next cron execution.\u003C\u002Fp>\n\u003Cp>For detailed instructions on setting up a proper Linux-based WordPress cron, see: \u003Ca href=\"https:\u002F\u002Fwww.getpagespeed.com\u002Fweb-apps\u002Fwordpress\u002Fwordpress-cron-optimization\" rel=\"nofollow ugc\">WordPress Cron Optimization\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Disabling Background Purging\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>If you have \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> defined but do not want background purging (for example, on low-traffic sites where immediate purges are preferred), you can force-disable cron-based purging by adding this to your \u003Ccode>wp-config.php\u003C\u002Fcode>:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>define( 'VHP_DISABLE_CRON_PURGING', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>With this constant set, all cache purges will execute immediately during the request, regardless of the \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> setting.\u003C\u002Fp>\n\u003Ch3>WP-CLI\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Purge\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Purge commands let you empty the cache.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish purge\u003C\u002Fcode> – Flush the entire site cache (equivalent to clicking “Empty Cache” in admin)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --all\u003C\u002Fcode> – Explicitly flush the entire site cache\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge \u003Curl>\u003C\u002Fcode> – Flush cache for a specific URL and all content below it (wildcard)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge \u003Curl> --url-only\u003C\u002Fcode> – Flush cache for only the exact URL specified (no wildcard)\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=\u003Ctag>\u003C\u002Fcode> – Flush cache by tag (requires Cache Tags mode to be enabled)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Examples:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish purge\u003C\u002Fcode> – Purge entire site\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --all\u003C\u002Fcode> – Same as above, more explicit\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fhello-world\u002F\u003C\u002Fcode> – Purge this URL and everything below it\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fhello-world\u002F --url-only\u003C\u002Fcode> – Purge only this exact URL\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge https:\u002F\u002Fexample.com\u002Fwp-content\u002Fthemes\u002F --wildcard\u003C\u002Fcode> – Purge all theme files\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=p-123\u003C\u002Fcode> – Purge all pages tagged with post ID 123\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish purge --tag=pt-post\u003C\u002Fcode> – Purge all cached pages of post type “post”\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Debug\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Debugging can help you figure out why your cache isn’t working as well as it could. The default is for your home page, but you can pass any URL on your domain.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish debug [\u003Curl>]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Available parameters:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[--include-headers]\u003C\u002Fcode> —  Include headers in debug check output\u003C\u002Fli>\n\u003Cli>\u003Ccode>[--include-grep]\u003C\u002Fcode> — Grep active theme and plugin directories for common issues\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>DevMode\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Development mode allows you to disable the cache, temporarily.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish devmode [\u003Cactivate|deactivate|toggle>]\u003C\u002Fcode> – Change development mode state\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Async purge queue (cron-mode)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When you define \u003Ccode>DISABLE_WP_CRON\u003C\u002Fcode> as \u003Ccode>true\u003C\u002Fcode> and run a real system cron for WordPress, Proxy Cache Purge can move heavy purge work into a small background queue that is processed by WP‑Cron.\u003C\u002Fp>\n\u003Cp>You can inspect and manage that queue via WP‑CLI:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>wp varnish queue status\u003C\u002Fcode> – show whether cron-mode is active, if a full purge is queued, counts of queued URLs\u002Ftags, and the last queue run time.\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish queue process\u003C\u002Fcode> – process any items currently in the queue (useful to run after deploys or cache‑sensitive operations).\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp varnish queue clear\u003C\u002Fcode> – clear the queue without sending any PURGE requests.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>These commands do not replace your normal WordPress cron (you still need a cron entry that calls \u003Ccode>wp cron event run --due-now\u003C\u002Fcode> or hits \u003Ccode>wp-cron.php\u003C\u002Fcode>), but they give you a simple operational handle when using cron‑mode.\u003C\u002Fp>\n\u003Ch4>Understanding Purge Behavior\u003C\u002Fh4>\n\u003Cp>There are different types of cache purges, and they behave differently:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Manual Purges (Admin Bar)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>“Purge Cache (All Pages)”\u003C\u002Fstrong> – Sends a single regex purge request to invalidate the entire cache. Always executes immediately.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>“Purge Cache (this page)”\u003C\u002Fstrong> – Purges only the exact URL you’re viewing. Always executes immediately.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Manual purges are always immediate, even when background cron-mode is enabled. This is intentional: when you click a button, you expect immediate results.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Automatic Purges (Post Save\u002FUpdate)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When you save or update a post, the plugin automatically purges:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The post’s URL\u003C\u002Fli>\n\u003Cli>The homepage\u003C\u002Fli>\n\u003Cli>Category archive pages\u003C\u002Fli>\n\u003Cli>Tag archive pages\u003C\u002Fli>\n\u003Cli>Author archive page\u003C\u002Fli>\n\u003Cli>Date-based archives\u003C\u002Fli>\n\u003Cli>RSS feeds\u003C\u002Fli>\n\u003Cli>Related REST API endpoints\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This can be 20-50+ URLs depending on your site structure. When cron-mode is enabled, these automatic purges are queued and processed in the background to avoid slowing down the post editor.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Difference\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>  Action\u003Cbr \u002F>\n  URLs Purged\u003Cbr \u002F>\n  Uses Cron Queue?\u003C\u002Fp>\n\u003Cp>  “Purge Cache (All Pages)”\u003Cbr \u002F>\n  1 (regex)\u003Cbr \u002F>\n  No – always immediate\u003C\u002Fp>\n\u003Cp>  “Purge Cache (this page)”\u003Cbr \u002F>\n  1\u003Cbr \u002F>\n  No – always immediate\u003C\u002Fp>\n\u003Cp>  Post save\u002Fupdate\u003Cbr \u002F>\n  20-50+\u003Cbr \u002F>\n  Yes (if cron-mode enabled)\u003C\u002Fp>\n\u003Cp>If you need to immediately purge all URLs related to a specific post (not just the post URL), save the post – the automatic purge will handle all related URLs.\u003C\u002Fp>\n","Automatically empty proxy cached content when your site is modified.",40000,2164070,88,26,"2026-03-13T00:00:00.000Z","6.3.8","5.0","5.6",[120,121,18,122,123],"cache","nginx","purge","varnish","https:\u002F\u002Fgithub.com\u002Fdvershinin\u002Fvarnish-http-purge","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fvarnish-http-purge.5.7.0.zip",{"slug":127,"name":128,"version":129,"author":130,"author_profile":131,"description":132,"short_description":133,"active_installs":134,"downloaded":135,"rating":32,"num_ratings":136,"last_updated":137,"tested_up_to":48,"requires_at_least":138,"requires_php":139,"tags":140,"homepage":146,"download_link":147,"security_score":148,"vuln_count":149,"unpatched_count":13,"last_vuln_date":150,"fetched_at":25},"ip2location-country-blocker","IP2Location Country Blocker","2.41.2","IP2Location","https:\u002F\u002Fprofiles.wordpress.org\u002Fip2location\u002F","\u003Cp>\u003Cem>This plugin will NOT work if any cache plugin is enabled.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>This plugin enables user to block unwanted traffic from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers. It helps to reduce spam and unwanted sign ups easily by preventing unwanted visitors from browsing a particular page or entire website.\u003C\u002Fp>\n\u003Cp>Key Features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Allow you to block the access from multiple countries.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by country grouping, such as EU, APAC, and so on.\u003C\u002Fli>\n\u003Cli>Allow you to block the access from anonymous proxies.\u003C\u002Fli>\n\u003Cli>Allow you to block the access by IP ranges.\u003C\u002Fli>\n\u003Cli>Allow you to whitelist the crawler, for example, Google, Bing, Yandex, and so on, to index your pages (SEO friendly).\u003C\u002Fli>\n\u003Cli>Supports IPv4 and IPv6\u003C\u002Fli>\n\u003Cli>Default to 403 error (Permission Denied) display\u003C\u002Fli>\n\u003Cli>Allow you to customize your own 403 page.\u003C\u002Fli>\n\u003Cli>Send you an email notification if some one is trying to access your admin area.\u003C\u002Fli>\n\u003Cli>Provide you statistical report of traffics blocked.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin supports both IP2Location BIN data and web service for IP geolocation lookup. If you would like to use the IP2Location geolocation BIN data, you can easily download and update the BIN data via the plugin settings page. Alternatively, you can also download and update the BIN data file manually using the below links:\u003C\u002Fp>\n\u003Cp>IP Geolocation file download:\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Flite.ip2location.com\" title=\"IP2Location LITE database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy LITE database (Free)\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fip2location.com\" title=\"IP2Location commercial database\" rel=\"nofollow ugc\">IP2Location & IP2Proxy Commercial database (Comprehensive)\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>To use the IP2Location IP geolocation web service (REST API) for geolocation, you’ll need to register an account at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.io\" title=\"IP2Location.io IP Geolocation API\" rel=\"nofollow ugc\">IP2Location.io IP Geolocation API\u003C\u002Fa>. A free plan is available.\u003C\u002Fp>\n\u003Ch4>More Information\u003C\u002Fh4>\n\u003Cp>Please visit us at \u003Ca href=\"https:\u002F\u002Fwww.ip2location.com\" title=\"https:\u002F\u002Fwww.ip2location.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.ip2location.com\u003C\u002Fa>\u003C\u002Fp>\n","Blocks unwanted visitors from accessing your frontend (blog pages) or backend (admin area) by countries or proxy servers.",30000,1626215,124,"2025-12-03T07:19:00.000Z","4.6","7.4",[141,142,143,144,145],"block-country","block-proxy","ip-address","ip2location","redirection","https:\u002F\u002Fip2location.com\u002Fresources\u002Fwordpress-ip2location-country-blocker","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fip2location-country-blocker.2.41.2.zip",93,9,"2025-02-21 19:56:54",{"attackSurface":152,"codeSignals":179,"taintFlows":186,"riskAssessment":187,"analyzedAt":196},{"hooks":153,"ajaxHandlers":170,"restRoutes":175,"shortcodes":176,"cronEvents":177,"entryPointCount":178,"unprotectedCount":178},[154,160,164],{"type":155,"name":156,"callback":157,"file":158,"line":159},"filter","tiny_mce_before_init","wp_spellcheck_tinymce_before_init","wp-spellcheck.php",19,{"type":155,"name":161,"callback":162,"file":158,"line":163},"wp_spellcheck_engine_config","wp_spellcheck_engine_replacements",20,{"type":165,"name":166,"callback":167,"priority":101,"file":168,"line":169},"action","wp_spellcheck_rpc_result","wp_spellcheck_inject_exceptions","wp_spellcheck_exceptions.php",11,[171],{"action":19,"nopriv":172,"callback":173,"hasNonce":172,"hasCapCheck":172,"file":158,"line":174},false,"wp_spellcheck_ajax",18,[],[],[],1,{"dangerousFunctions":180,"sqlUsage":181,"outputEscaping":183,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":185},[],{"prepared":13,"raw":13,"locations":182},[],{"escaped":13,"rawEcho":13,"locations":184},[],[],[],{"summary":188,"deductions":189},"The \"wp-spellcheck\" v1.0 plugin exhibits a mixed security posture.  On the positive side, the plugin demonstrates good practices by avoiding dangerous functions, performing 100% of its SQL queries using prepared statements, and ensuring all outputs are properly escaped. There are no recorded vulnerabilities (CVEs) or recorded taint flows, suggesting a lack of historically exploitable issues and a generally clean codebase in terms of data sanitization.  The absence of file operations and external HTTP requests also reduces potential attack vectors.\n\nHowever, a significant concern arises from the presence of one AJAX handler that lacks authentication checks. This represents a direct entry point into the plugin's functionality that can be accessed by unauthenticated users.  While the static analysis did not reveal any specific dangerous functions or taint issues that could be exploited through this AJAX handler, the lack of authorization leaves it vulnerable to potential abuse.  The absence of any nonce checks on this AJAX handler further exacerbates this risk, as it provides no mechanism to verify the legitimacy of the request.\n\nIn conclusion, the plugin's strengths lie in its secure coding practices for SQL and output handling, and its clean vulnerability history.  The primary weakness is the unprotected AJAX endpoint, which, despite not having immediate exploitable flaws identified in static analysis, presents a clear security oversight.  Addressing the authentication for this AJAX handler is crucial to improving the plugin's overall security.",[190,193],{"reason":191,"points":192},"Unprotected AJAX handler",7,{"reason":194,"points":195},"Missing nonce check on AJAX handler",6,"2026-03-16T21:43:49.060Z",{"wat":198,"direct":203},{"assetPaths":199,"generatorPatterns":200,"scriptPaths":201,"versionParams":202},[],[],[],[],{"cssClasses":204,"htmlComments":205,"htmlAttributes":206,"restEndpoints":207,"jsGlobals":208,"shortcodeOutput":209},[],[],[],[],[],[210],"admin-ajax.php?action=spellcheck"]