[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fOJSEmBKVd3IHaM3ANywQsbXLXD9cJq8WjHw0pakeFV8":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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":37,"analysis":142,"fingerprints":185},"subpages-expand","Subpage as Expandable Text Shortcode","1.20","salubrio","https:\u002F\u002Fprofiles.wordpress.org\u002Fsalubrio\u002F","\u003Cp>Intended users: editors, authors, contributors\u003C\u002Fp>\n\u003Cp>This plugin will allow you to display the content of subpages as expandable links.\u003C\u002Fp>\n\u003Cp>Simply add [subpages_expand] to any parent page. The titles of each of the subpages will be displayed there as clickable links. When the user clicks the link, it will expand, displaying the content of that child page.\u003C\u002Fp>\n\u003Cp>Clicking the title again will collapse the content.\u003C\u002Fp>\n\u003Ch3>Acknowledgements\u003C\u002Fh3>\n\u003Cp>Plugin Icon (CC BY 3.0) by \u003Ca href=\"http:\u002F\u002Fdinosoftlabs.com\u002F\" rel=\"nofollow ugc\">DinosoftLabs\u003C\u002Fa>\u003C\u002Fp>\n","Add [subpages_expand] to any parent page. All child pages' titles are shown as links that expand to content when clicked",80,4414,100,2,"2025-03-26T22:55:00.000Z","6.7.5","3.4.1","",[20,21,22,23,24],"effect","jquery","navigation","pages","text","http:\u002F\u002Fhbjitney.com\u002Fsubpages-expand.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsubpages-expand.1.20.zip",92,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":14,"total_installs":33,"avg_security_score":34,"avg_patch_time_days":35,"trust_score":34,"computed_at":36},3080,81,30,"2026-04-04T21:16:52.931Z",[38,57,78,97,118],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":28,"num_ratings":28,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":18,"tags":51,"homepage":18,"download_link":55,"security_score":56,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"cool-text-effect","Cool Text Effect","1.0","Saifullah Tareq","https:\u002F\u002Fprofiles.wordpress.org\u002Fsaifullah-tareq\u002F","\u003Cp>This plugin will enable text effect in your wordpress theme. You can embed cool textEffect  via shortcode in everywhere you want, even in theme files.\u003C\u002Fp>\n","This plugin will enable text effect in your wordpress theme. You can embed cool textEffect  via shortcode in everywhere you want, even in theme files.",10,1762,"2014-11-07T10:54:00.000Z","3.9.40","3.0.1",[39,52,53,54],"jquery-type-effect","text-effect","type-effect-jquery-text-effect","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcool-text-effect.zip",85,{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":46,"downloaded":65,"rating":66,"num_ratings":67,"last_updated":68,"tested_up_to":69,"requires_at_least":50,"requires_php":18,"tags":70,"homepage":76,"download_link":77,"security_score":56,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"perfect-accordion","Perfect Accordion","2.0.2","Khurshid Alam","https:\u002F\u002Fprofiles.wordpress.org\u002Fsozan45\u002F","\u003Cp>This is a accordion plugin to extend your website’s beauty and make it gorgeous. By activating this plugin user can get a custom post in Dashboard Menu With the name of “Accordion” as default accordion item. User can use any type of post as Accordion item like “post”. This plugin Generate multi-functional shortcode. shortcode make this easy and user friendly. Its work on page, post also widget.\u003C\u002Fp>\n","This is a accordion plugin to extend your website's beauty and make it gorgeous. By activating this plugin user can get a custom post in Dashboar &hellip;",3267,60,4,"2015-07-08T14:01:00.000Z","4.2.39",[71,72,73,74,75],"accordion","jquery-text-effect","text-accordion","text-effect-jquery-accordion","text-expand","http:\u002F\u002Fdemo.themeultra.com\u002Fwp-plugin\u002Fperfect-accordion\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperfect-accordion.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":16,"requires_at_least":91,"requires_php":18,"tags":92,"homepage":95,"download_link":96,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-pagenavi","WP-PageNavi","2.94.5","Lester Chan","https:\u002F\u002Fprofiles.wordpress.org\u002Fgamerz\u002F","\u003Cp>Want to replace the old \u003Cem>&larr; Older posts | Newer posts &rarr;\u003C\u002Fem> links with some page links?\u003C\u002Fp>\n\u003Cp>This plugin provides the \u003Ccode>wp_pagenavi()\u003C\u002Fcode> template tag which generates fancy pagination links.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>In your theme, you need to find calls to next_posts_link() and previous_posts_link() and replace them.\u003C\u002Fp>\n\u003Cp>In the Twentyten theme, it looks like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cdiv class=\"nav-previous\">\u003C?php next_posts_link( __( '\u003Cspan class=\"meta-nav\">&larr;\u003C\u002Fspan> Older posts', 'twentyten' ) ); ?>\u003C\u002Fdiv>\n\u003Cdiv class=\"nav-next\">\u003C?php previous_posts_link( __( 'Newer posts \u003Cspan class=\"meta-nav\">&rarr;\u003C\u002Fspan>', 'twentyten' ) ); ?>\u003C\u002Fdiv>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You would replace those two lines with this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_pagenavi(); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For multipart pages, you would look for code like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_link_pages( ... ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>and replace it with this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Go to \u003Cem>WP-Admin -> Settings -> PageNavi\u003C\u002Fem> for configuration.\u003C\u002Fp>\n\u003Ch3>Changing the CSS\u003C\u002Fh3>\n\u003Cp>If you need to configure the CSS style of WP-PageNavi, you can copy the \u003Ccode>pagenavi-css.css\u003C\u002Fcode> file from the plugin directory to your theme’s directory and make your modifications there. This way, you won’t lose your changes when you update the plugin.\u003C\u002Fp>\n\u003Cp>Alternatively, you can uncheck the “Use pagenavi.css?” option from the settings page and add the styles to your theme’s style.css file directly.\u003C\u002Fp>\n\u003Ch3>Changing Class Names\u003C\u002Fh3>\n\u003Cp>There are \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FGlossary#Filter\" rel=\"nofollow ugc\">filters\u003C\u002Fa> that can be used to change the default class names that are assigned to page navigation elements.\u003C\u002Fp>\n\u003Ch4>Filters\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>wp_pagenavi_class_pages\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_first\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_previouspostslink\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_extend\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_smaller\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_page\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_current\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_larger\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_nextpostslink\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_last\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Filter Usage\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u002F\u002F Simple Usage - 1 callback per filter\nadd_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_previouspostslink_class');\nadd_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_nextpostslink_class');\nadd_filter('wp_pagenavi_class_page', 'theme_pagination_page_class');\n\nfunction theme_pagination_previouspostslink_class($class_name) {\n  return 'pagination__control-link pagination__control-link--previous';\n}\n\nfunction theme_pagination_nextpostslink_class($class_name) {\n  return 'pagination__control-link pagination__control-link--next';\n}\n\nfunction theme_pagination_page_class($class_name) {\n  return 'pagination__current-page';\n}\n\n\n\u002F\u002F More Concise Usage - 1 callback for all filters\nadd_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_class');\nadd_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_class');\nadd_filter('wp_pagenavi_class_page', 'theme_pagination_class');\n\nfunction theme_pagination_class($class_name) {\n  switch($class_name) {\n    case 'previouspostslink':\n      $class_name = 'pagination__control-link pagination__control-link--previous';\n      break;\n    case 'nextpostslink':\n      $class_name = 'pagination__control-link pagination__control-link--next';\n      break;\n    case 'page':\n      $class_name = 'pagination__current'\n      break;\n  }\n  return $class_name;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\" title=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Plugin icon by \u003Ca href=\"http:\u002F\u002Fwww.simpleicon.com\" rel=\"nofollow ugc\">SimpleIcon\u003C\u002Fa> from \u003Ca href=\"http:\u002F\u002Fwww.flaticon.com\" rel=\"nofollow ugc\">Flaticon\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Donations\u003C\u002Fh3>\n\u003Cp>I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.\u003C\u002Fp>\n","Adds a more advanced paging navigation interface.",500000,13305409,94,149,"2024-12-19T01:02:00.000Z","4.6",[22,23,93,94],"pagination","paging","https:\u002F\u002Flesterchan.net\u002Fportfolio\u002Fprogramming\u002Fphp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-pagenavi.2.94.5.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":105,"downloaded":106,"rating":107,"num_ratings":108,"last_updated":109,"tested_up_to":110,"requires_at_least":111,"requires_php":18,"tags":112,"homepage":116,"download_link":117,"security_score":56,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"exclude-pages","Exclude Pages","1.92","Simon Wheatley","https:\u002F\u002Fprofiles.wordpress.org\u002Fsimonwheatley\u002F","\u003Cp>This plugin adds a checkbox, “include this page in menus”, uncheck this to exclude pages from the page navigation that users see on your site.\u003C\u002Fp>\n\u003Cp>Any issues: \u003Ca href=\"http:\u002F\u002Fwww.simonwheatley.co.uk\u002Fcontact-me\u002F\" rel=\"nofollow ugc\">contact me\u003C\u002Fa>.This plugin adds a checkbox, “include this page in menus”, which is checked by default. If you uncheck\u003Cbr \u002F>\nit, the page will not appear in any listings of pages (which includes, and is \u003Cem>usually\u003C\u002Fem> limited to, your\u003Cbr \u002F>\npage navigation menus).\u003C\u002Fp>\n\u003Cp>Pages which are children of excluded pages also do not show up in menu listings. (An alert in the editing screen,\u003Cbr \u002F>\nunderneath the “include” checkbox allows you to track down which ancestor page is affecting child pages\u003Cbr \u002F>\nin this way.)\u003C\u002Fp>\n\u003Ch3>Advanced Usage\u003C\u002Fh3>\n\u003Cp>It is possible to temporarily pause and resume the effect of Exclude Pages by using the new \u003Ccode>\u003C?php pause_exclude_pages(); ?>\u003C\u002Fcode> and \u003Ccode>\u003C?php resume_exclude_pages(); ?>\u003C\u002Fcode> templates tags. The following code will show a list of all pages in your site, even those normally hidden:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php pause_exclude_pages(); ?>\n\u003C?php wp_list_pages('title_li=\u003Ch2>Pages\u003C\u002Fh2>' ); ?>\n\u003C?php resume_exclude_pages(); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also get an array the IDs of the pages which are excluded by calling the function \u003Ccode>ep_get_excluded_ids();\u003C\u002Fcode>, you can then use these IDs as you wish (e.g. feed them into raw MySQL queries).\u003C\u002Fp>\n\u003Cp>Note to other plugin authors:\u003C\u002Fp>\n\u003Cp>The plugin does not operate on wp_list_pages while the user is on an admin page, if this is an issue you can take advantage of the \u003Ccode>ep_admin_bail_out\u003C\u002Fcode> filter and create a filter function which returns false to allow Exclude Pages to operate in the admin area.\u003C\u002Fp>\n\u003Cp>Another note:\u003C\u002Fp>\n\u003Cp>If your plugins or themes don’t use the standard WordPress functions to create their menus then they won’t work. To get them to work you will need to track down the bit of code in the theme\u002Fplugin which gets the pages and change it to apply the filter “get_pages” (I cannot be responsible for any unforseen effects of the changes you make, so please test thoroughly). The change to getting pages will probably look something like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>$pages = apply_filters( 'get_pages', $pages );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Please \u003Ca href=\"http:\u002F\u002Fwww.simonwheatley.co.uk\u002Fcontact-me\u002F\" rel=\"nofollow ugc\">contact me\u003C\u002Fa> if you’re completely stuck and we can discuss possible solutions.\u003C\u002Fp>\n\u003Cp>Exclude pages is incompatible with:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fwordpress-css-drop-down-menu\u002F\" rel=\"ugc\">WP CSS Dropdown Menus\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fthemes\u002Fphantom\" rel=\"ugc\">Phantom theme\u003C\u002Fa> – This theme\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Requests & Bug Reports\u003C\u002Fh3>\n\u003Cp>I’m simply noting requests & bug reports here, I’ve not necessarily looked into any of these.\u003C\u002Fp>\n\u003Cp>\u003Cem>None!\u003C\u002Fem>\u003C\u002Fp>\n","This plugin adds a checkbox, “include this page in menus”, uncheck this to exclude pages from the page navigation that users see on your site.",30000,1037162,98,47,"2017-11-28T03:16:00.000Z","3.4.2","2.2.3",[98,113,114,115,22],"get_pages","hide-pages","menu","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fexclude-pages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexclude-pages.1.92.zip",{"slug":119,"name":120,"version":121,"author":122,"author_profile":123,"description":124,"short_description":125,"active_installs":126,"downloaded":127,"rating":107,"num_ratings":128,"last_updated":129,"tested_up_to":130,"requires_at_least":131,"requires_php":132,"tags":133,"homepage":139,"download_link":140,"security_score":107,"vuln_count":14,"unpatched_count":28,"last_vuln_date":141,"fetched_at":30},"cc-child-pages","CC Child Pages","2.1.1","caterhamcomputing","https:\u002F\u002Fprofiles.wordpress.org\u002Fcaterhamcomputing\u002F","\u003Cp>CC Child Pages displays WordPress child pages of any parent page in a responsive grid or list layout, making it easy to display hierarchical page structures, subpages and navigation.\u003C\u002Fp>\n\u003Cp>You can use it in page content, widget areas, or templates using:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>the \u003Ccode>[child_pages]\u003C\u002Fcode> shortcode,\u003C\u002Fli>\n\u003Cli>the \u003Cstrong>CC Child Pages\u003C\u002Fstrong> Gutenberg block, or\u003C\u002Fli>\n\u003Cli>the \u003Cstrong>CC Child Pages\u003C\u002Fstrong> Elementor widget (when Elementor is active).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All output methods use a modern CSS system based on CSS variables and flexible grid layouts for improved theme compatibility. For older or heavily customised themes, a Legacy CSS mode is available — either by checking the \u003Cstrong>Use Legacy CSS\u003C\u002Fstrong> option in the block or Elementor sidebar, or by setting \u003Ccode>use_legacy_css=\"true\"\u003C\u002Fcode> in the shortcode.\u003C\u002Fp>\n\u003Cp>This makes it ideal for building sub-navigation sections, page directories, or visual site maps.\u003C\u002Fp>\n\u003Cp>Full documentation is available at \u003Ca href=\"https:\u002F\u002Fdocs.ccplugins.co.uk\u002Fplugins\u002Fcc-child-pages\u002F\" rel=\"nofollow ugc\">docs.ccplugins.co.uk\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Display WordPress child pages in grid or list layout\u003C\u002Fli>\n\u003Cli>Supports shortcode, Gutenberg block and Elementor widget\u003C\u002Fli>\n\u003Cli>Flexible column layouts (1–6 columns)\u003C\u002Fli>\n\u003Cli>Modern CSS system based on CSS variables\u003C\u002Fli>\n\u003Cli>Optional Legacy CSS mode for older themes\u003C\u002Fli>\n\u003Cli>Pagination and sorting controls\u003C\u002Fli>\n\u003Cli>Custom field overrides\u003C\u002Fli>\n\u003Cli>Lazy loading support\u003C\u002Fli>\n\u003Cli>Fully translatable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>A Pro add-on is also available at \u003Ca href=\"https:\u002F\u002Fccplugins.co.uk\" rel=\"nofollow ugc\">ccplugins.co.uk\u003C\u002Fa> which adds additional display skins, advanced layout controls, colour customisation options and Elementor enhancements.\u003C\u002Fp>\n\u003Ch3>What’s New in 2.x\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Gutenberg block with live preview\u003C\u002Fli>\n\u003Cli>Elementor widget integration\u003C\u002Fli>\n\u003Cli>Modern CSS skins using CSS variables\u003C\u002Fli>\n\u003Cli>Legacy CSS compatibility toggle\u003C\u002Fli>\n\u003Cli>Reorganised shortcode structure\u003C\u002Fli>\n\u003Cli>Continued support for the classic widget (legacy)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How It Works\u003C\u002Fh3>\n\u003Ch4>Gutenberg Block\u003C\u002Fh4>\n\u003Cp>Insert the \u003Cstrong>CC Child Pages\u003C\u002Fstrong> block in the editor. Configure:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Parent page\u003C\u002Fli>\n\u003Cli>Columns\u003C\u002Fli>\n\u003Cli>Thumbnails\u003C\u002Fli>\n\u003Cli>Excerpt display\u003C\u002Fli>\n\u003Cli>Sorting\u003C\u002Fli>\n\u003Cli>Legacy CSS toggle\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The block provides a live preview while editing.\u003C\u002Fp>\n\u003Ch4>Elementor Widget\u003C\u002Fh4>\n\u003Cp>If \u003Cstrong>Elementor\u003C\u002Fstrong> is installed and active, a \u003Cstrong>CC Child Pages\u003C\u002Fstrong> widget becomes available.\u003C\u002Fp>\n\u003Cp>The widget is located inside the \u003Cstrong>CC Plugins\u003C\u002Fstrong> category within the Elementor panel.\u003C\u002Fp>\n\u003Cp>You can:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Select the parent page\u003C\u002Fli>\n\u003Cli>Choose columns (1–6)\u003C\u002Fli>\n\u003Cli>Enable thumbnails and lazy loading\u003C\u002Fli>\n\u003Cli>Control excerpt display\u003C\u002Fli>\n\u003Cli>Configure sorting\u003C\u002Fli>\n\u003Cli>Enable Legacy CSS if required\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>All shortcode options are available via intuitive controls in the Elementor sidebar.\u003C\u002Fp>\n\u003Cp>The widget renders the same output structure as the shortcode and block, ensuring consistent styling across editors.\u003C\u002Fp>\n\u003Ch4>Shortcode\u003C\u002Fh4>\n\u003Cp>Insert:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>By default, this displays the child pages of the current page.\u003C\u002Fp>\n\u003Cp>To enable legacy styling:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages use_legacy_css=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The shortcode supports detailed layout and query control, documented below.\u003C\u002Fp>\n\u003Ch3>Complete Shortcode Guide\u003C\u002Fh3>\n\u003Ch3>1. Basic Usage\u003C\u002Fh3>\n\u003Cp>Display children of current page:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display children of a specific page:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages id=\"42\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display specific pages only:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages page_ids=\"3,7,10\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Exclude specific pages:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages exclude=\"5,9,12\"]\u003Ch3>2. Grid Layout Options\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Choose number of columns:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages cols=\"1\"]\n[child_pages cols=\"2\"]\n[child_pages cols=\"3\"]\n[child_pages cols=\"4\"]\n[child_pages cols=\"5\"]\n[child_pages cols=\"6\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Choose skin:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages skin=\"simple\"]\n[child_pages skin=\"red\"]\n[child_pages skin=\"green\"]\n[child_pages skin=\"blue\"]\n[child_pages skin=\"sleek\"]\n[child_pages skin=\"bold\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Add custom wrapper class:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages class=\"my-custom-grid\"]\u003Ch3>3. List Mode (Instead of Grid)\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display as unordered list:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages list=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Control hierarchy depth:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages list=\"true\" depth=\"0\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Depth values:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>0\u003C\u002Fcode> – unlimited depth (nested list)\u003C\u002Fli>\n\u003Cli>\u003Ccode>-1\u003C\u002Fcode> – flat list\u003C\u002Fli>\n\u003Cli>\u003Ccode>1\u003C\u002Fcode> – top level only\u003C\u002Fli>\n\u003Cli>\u003Ccode>2, 3, 4\u003C\u002Fcode> – specific depth\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In list mode, only these attributes apply:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>id, `exclude`, `orderby`, `order`, `cols`, `class`, `depth`\u003Ch3>4. Thumbnails\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Show featured images:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages thumbs=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Specify size:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages thumbs=\"large\"]\n[child_pages thumbs=\"full\"]\n[child_pages thumbs=\"my-custom-size\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Make thumbnails clickable:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages thumbs=\"medium\" link_thumbs=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Enable lazy loading:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages thumbs=\"medium\" lazy_load=\"true\"]\n[child_pages thumbs=\"medium\" link_thumbs=\"true\" lazy_load=\"true\"]\u003Ch3>5. Titles & Links\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Make titles clickable:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages link_titles=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Hide titles:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages hide_title=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Hide “Read more” link:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages hide_more=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Change “Read more” text:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages more=\"View Details\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Open links in new tab:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages link_target=\"_blank\"]\u003Ch3>6. Excerpt Control\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Limit word count:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages words=\"20\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Disable excerpt truncation:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages truncate_excerpt=\"false\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Hide excerpt completely:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages hide_excerpt=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Hide WordPress “Continue reading” text:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages hide_wp_more=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Show full page content:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages show_page_content=\"true\"]\u003Ch3>7. Sorting & Query Control\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Order results:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages orderby=\"title\" order=\"ASC\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Supported \u003Ccode>orderby\u003C\u002Fcode> values:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>menu_order\u003C\u002Fcode> (default)\u003C\u002Fli>\n\u003Cli>\u003Ccode>id\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>title\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>slug\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>author\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>date\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>modified\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>rand\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Limit number displayed:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages limit=\"5\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Offset results:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages offset=\"2\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Display sibling pages:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages siblings=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Include current page with siblings:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages siblings=\"true\" show_current_page=\"true\"]\u003Ch3>8. Pagination\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Enable pagination:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages posts_per_page=\"6\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Force a specific page:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages posts_per_page=\"6\" page=\"2\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Pagination does not apply in list mode.\u003C\u002Fp>\n\u003Ch3>9. Post Status Control\u003C\u002Fh3>\n\u003Cp>By default:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Published pages are shown\u003C\u002Fli>\n\u003Cli>Private pages are shown to authorised users\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Specify manually:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages post_status=\"publish\"]\n[child_pages post_status=\"publish,private\"]\u003Ch3>10. Display Meta Information\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Show author:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages show_author=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Show creation date:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages show_date_created=\"true\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Show modified date:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages show_date_modified=\"true\"]\u003Ch3>11. Custom Fields (Advanced)\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Override default values using meta fields.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages use_custom_excerpt=\"custom_excerpt\"]\n[child_pages use_custom_title=\"custom_title\"]\n[child_pages use_custom_thumbs=\"custom_thumb\"]\n[child_pages use_custom_link=\"custom_link\"]\n[child_pages use_custom_link_target=\"custom_target\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Custom field overrides are ignored in list mode.\u003C\u002Fp>\n\u003Ch3>12. Sticky Posts\u003C\u002Fh3>\n\u003Cp>Sticky posts are ignored by default.\u003C\u002Fp>\n\u003Cp>To include them:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[child_pages ignore_sticky_posts=\"false\"]\u003Ch3>License\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>This plugin is free software; you may redistribute it and\u002For modify it under the terms of the GNU General Public License v2 or later.\u003C\u002Fp>\n\u003Cp>See https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\u003C\u002Fp>\n","Display WordPress child pages in a responsive grid or list using a shortcode, Gutenberg block or Elementor widget.",10000,159061,49,"2026-03-05T16:53:00.000Z","6.9.4","6.7","7.4",[134,135,136,137,138],"child-pages","elementor","page-list","page-navigation","subpages","https:\u002F\u002Fccplugins.co.uk\u002Fplugins\u002Fcc-child-pages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcc-child-pages.2.1.1.zip","2025-12-15 02:16:08",{"attackSurface":143,"codeSignals":169,"taintFlows":176,"riskAssessment":177,"analyzedAt":184},{"hooks":144,"ajaxHandlers":160,"restRoutes":161,"shortcodes":162,"cronEvents":167,"entryPointCount":168,"unprotectedCount":28},[145,151,155],{"type":146,"name":147,"callback":148,"priority":46,"file":149,"line":150},"action","wp_enqueue_scripts","shortcode_enqueue","subpages_expand.php",37,{"type":146,"name":152,"callback":153,"priority":13,"file":149,"line":154},"edit_page_form","add_button_to_editor",38,{"type":156,"name":157,"callback":158,"file":149,"line":159},"filter","the_posts","conditionally_add_scripts_and_styles",40,[],[],[163],{"tag":164,"callback":165,"file":149,"line":166},"subpages_expand","render_subs",39,[],1,{"dangerousFunctions":170,"sqlUsage":171,"outputEscaping":173,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":175},[],{"prepared":28,"raw":28,"locations":172},[],{"escaped":28,"rawEcho":28,"locations":174},[],[],[],{"summary":178,"deductions":179},"The \"subpages-expand\" v1.20 plugin demonstrates a strong security posture based on the provided static analysis.  There are no identified dangerous functions, file operations, or external HTTP requests. The plugin also shows excellent practices regarding SQL queries, with 100% using prepared statements, and all output is properly escaped. The absence of critical or high severity taint flows further reinforces this positive assessment. The plugin's vulnerability history is clean, with no recorded CVEs, suggesting a history of secure development or diligent patching if issues arose previously.  The limited attack surface, consisting of a single shortcode, is also a positive factor. However, a notable concern is the complete lack of nonce and capability checks across all entry points. While the current data indicates no unprotected entry points, relying solely on other security mechanisms without these WordPress-specific checks represents a potential weakness that could be exploited if other layers of defense are bypassed or if the plugin evolves with new features. This absence of built-in WordPress security primitives is the primary area of concern in an otherwise well-developed plugin.",[180,182],{"reason":181,"points":46},"Missing nonce checks on entry points",{"reason":183,"points":46},"Missing capability checks on entry points","2026-03-16T21:30:18.337Z",{"wat":186,"direct":193},{"assetPaths":187,"generatorPatterns":189,"scriptPaths":190,"versionParams":191},[188],"\u002Fwp-content\u002Fplugins\u002Fsubpages-expand\u002Fjs\u002Fadd_button_editor.js.php",[],[188],[192],"subpages-expand\u002Fstyle.css?ver=",{"cssClasses":194,"htmlComments":197,"htmlAttributes":198,"restEndpoints":199,"jsGlobals":200,"shortcodeOutput":202},[195,196],"subpage_title","subpage_content",[],[],[],[201],"texts",[203,204],"\u003Ch2 class='subpage_title' style='cursor:pointer'>","\u003Cdiv class='subpage_content' style='display:none'>"]