[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fPC8vwAnOu-hRQEZX_2xKQZbuczcTg3yqRaj8QsS1Heo":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":39,"analysis":134,"fingerprints":172},"ambrosite-nextprevious-page-link-plus","Ambrosite Next\u002FPrevious Page Link Plus","1.1","ambrosite","https:\u002F\u002Fprofiles.wordpress.org\u002Fambrosite\u002F","\u003Cp>\u003Cstrong>IMPORTANT: Make sure you are using the right plugin.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Next\u002FPrevious Page Link Plus\u003C\u002Fstrong> is intended for use in \u003Cstrong>page\u003C\u002Fstrong> templates.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Next\u002FPrevious Post Link Plus\u003C\u002Fstrong> is intended for use in \u003Cstrong>single post\u003C\u002Fstrong> templates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The two plugins have similar sounding, but different, function names. If you mistakenly install the wrong plugin, you will get a “call to undefined function” error. If you want to create next\u002Fprevious links for your posts (including custom post types), please check out:\u003Cbr \u002F>\nhttps:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fambrosite-nextprevious-post-link-plus\u002F\u003C\u002Fp>\n\u003Cp>This plugin creates two new template tags — \u003Cstrong>next_page_link_plus\u003C\u002Fstrong> and \u003Cstrong>previous_page_link_plus\u003C\u002Fstrong> — which may be used to generate next\u002Fprevious navigation links for pages. The new tags include the following options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Sort the next\u002Fprevious page links on any column, including alphabetically, by date, and by menu_order.\u003C\u002Fli>\n\u003Cli>Sort the next\u002Fprevious links on custom fields (both string and integer sorts are supported).\u003C\u002Fli>\n\u003Cli>Loop around to the first page if there is no next page (and vice versa).\u003C\u002Fli>\n\u003Cli>Retrieve the first\u002Flast page, rather than the previous\u002Fnext page (for First|Previous|Next|Last navigation links).\u003C\u002Fli>\n\u003Cli>Display the featured image alongside the links (WordPress 2.9 or higher).\u003C\u002Fli>\n\u003Cli>Truncate the link titles to any length, and display custom text in the tooltip.\u003C\u002Fli>\n\u003Cli>Display the title, date, author, and meta value of the next\u002Fprevious links.\u003C\u002Fli>\n\u003Cli>Specify a custom date format for the %date variable.\u003C\u002Fli>\n\u003Cli>Restrict next\u002Fprevious links to same parent page, author, or custom field value.\u003C\u002Fli>\n\u003Cli>Exclude or include individual page IDs.\u003C\u002Fli>\n\u003Cli>Return multiple next\u002Fprevious links (e.g. the next N links, in an HTML list).\u003C\u002Fli>\n\u003Cli>Return the ID, title, date, href attribute, or post object of the next\u002Fprevious links, instead of echoing them to the screen.\u003C\u002Fli>\n\u003Cli>Return false if no next\u002Fprevious link is found, so themes may conditionally display alternate text.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Extensive documentation on configuring the plugin may be found here:\u003Cbr \u002F>\nhttp:\u002F\u002Fwww.ambrosite.com\u002Fplugins\u002Fnext-previous-page-link-plus-for-wordpress\u003C\u002Fp>\n","Creates two new template tags for generating next\u002Fprevious page navigation links.",900,18069,100,7,"2012-02-18T05:40:00.000Z","3.3.2","2.5","",[20,21,22,23,24],"adjacent","link","next","page","previous","http:\u002F\u002Fwww.ambrosite.com\u002Fplugins","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fambrosite-nextprevious-page-link-plus.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},5,7280,88,30,86,"2026-04-04T07:09:29.065Z",[40,54,74,96,115],{"slug":41,"name":42,"version":43,"author":7,"author_profile":8,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":51,"homepage":25,"download_link":53,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"ambrosite-nextprevious-post-link-plus","Ambrosite Next\u002FPrevious Post Link Plus","2.4","\u003Cp>\u003Cstrong>IMPORTANT: Make sure you are using the right plugin.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Next\u002FPrevious Post Link Plus\u003C\u002Fstrong> is intended for use in \u003Cstrong>single post\u003C\u002Fstrong> templates.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Next\u002FPrevious Page Link Plus\u003C\u002Fstrong> is intended for use in \u003Cstrong>page\u003C\u002Fstrong> templates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The two plugins have similar sounding, but different, function names. If you mistakenly install the wrong plugin, you will get a “call to undefined function” error. If you want to create next\u002Fprevious links for your pages, please check out:\u003Cbr \u002F>\nhttps:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fambrosite-nextprevious-page-link-plus\u002F\u003C\u002Fp>\n\u003Cp>\u003Cstrong>IMPORTANT: This plugin is not compatible with PHP 4.\u003C\u002Fstrong> If you try to install it on a host running PHP 4, you will get a parse error. WordPress has officially ended support for PHP 4 as of version 3.2, so you should upgrade to PHP 5.2 now. For those who cannot upgrade, you can download the alternate PHP 4 compatible version of the plugin. The only difference with the PHP 4 version is that the \u003Cem>%category\u003C\u002Fem> variable will not work with custom taxonomies.\u003Cbr \u002F>\nhttp:\u002F\u002Fwww.ambrosite.com\u002Fdownload\u002Fambrosite-nextprevious-post-link-plus.php4.zip\u003C\u002Fp>\n\u003Cp>This plugin creates two new template tags — \u003Cstrong>next_post_link_plus\u003C\u002Fstrong> and \u003Cstrong>previous_post_link_plus\u003C\u002Fstrong> — which are upgraded versions of the core WordPress next_post_link and previous_post_link template tags. The new tags include all of the functionality of the core tags, plus the following additional options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Sort the next\u002Fprevious post links on columns other than post_date (e.g. alphabetically).\u003C\u002Fli>\n\u003Cli>Sort next\u002Fprevious links on custom fields (both string and integer sorts are supported).\u003C\u002Fli>\n\u003Cli>Full WordPress 3.3 compatibility, including support for custom post types, custom taxonomies, and post formats.\u003C\u002Fli>\n\u003Cli>Loop around to the first post if there is no next post (and vice versa).\u003C\u002Fli>\n\u003Cli>Retrieve the first\u002Flast post, rather than the previous\u002Fnext post (for First|Previous|Next|Last navigation links).\u003C\u002Fli>\n\u003Cli>Display post thumbnails alongside the links (WordPress 2.9 or higher).\u003C\u002Fli>\n\u003Cli>Truncate the link titles to any length, and display custom text in the tooltip.\u003C\u002Fli>\n\u003Cli>Display the title, date, author, category, and meta value of the next\u002Fprevious links.\u003C\u002Fli>\n\u003Cli>Specify a custom date format for the %date variable.\u003C\u002Fli>\n\u003Cli>Restrict next\u002Fprevious links to same category, taxonomy, format, author, custom field value, custom post ID list, or custom category list.\u003C\u002Fli>\n\u003Cli>Exclude categories, custom taxonomies, post formats, or individual post IDs.\u003C\u002Fli>\n\u003Cli>Three category exclusion methods for greater control over the navigation stream.\u003C\u002Fli>\n\u003Cli>Return multiple next\u002Fprevious links (e.g. the next N links, in an HTML list).\u003C\u002Fli>\n\u003Cli>Return the ID, title, date, href attribute, or post object of the next\u002Fprevious links, instead of echoing them to the screen.\u003C\u002Fli>\n\u003Cli>Return false if no next\u002Fprevious link is found, so themes may conditionally display alternate text.\u003C\u002Fli>\n\u003Cli>Works with Post Types Order and other popular post reordering plugins.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Extensive documentation on configuring the plugin may be found here:\u003Cbr \u002F>\nhttp:\u002F\u002Fwww.ambrosite.com\u002Fplugins\u002Fnext-previous-post-link-plus-for-wordpress\u003C\u002Fp>\n","Upgrades the next\u002Fprevious post link functions to reorder or loop adjacent post navigation links, display post thumbnails, and customize link format.",6000,57173,98,49,"2017-11-28T15:54:00.000Z",[20,21,22,52,24],"post","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fambrosite-nextprevious-post-link-plus.zip",{"slug":55,"name":56,"version":57,"author":58,"author_profile":59,"description":60,"short_description":61,"active_installs":62,"downloaded":63,"rating":13,"num_ratings":64,"last_updated":65,"tested_up_to":66,"requires_at_least":67,"requires_php":18,"tags":68,"homepage":72,"download_link":73,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"fixed-adjacent-post","Fixed Adjacent Post","1.0","Kite","https:\u002F\u002Fprofiles.wordpress.org\u002Fixkaito\u002F","\u003Cp>Usage:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_previous_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_previous_post()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_next_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_next_post()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_adjacent_post( $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_adjacent_post()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_adjacent_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_adjacent_post_rel_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_adjacent_posts_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>adjacent_posts_rel_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_adjacent_posts_rel_link_wp_head()\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>adjacent_posts_rel_link_wp_head()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_next_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>next_post_rel_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_prev_post_rel_link( $title = '%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>prev_post_rel_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_previous_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_previous_post_link( $format = '&laquo; %link', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>previous_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_next_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_next_post_link( $format = '%link &raquo;', $link = '%title', $in_same_cat = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>next_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>get_fixed_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>get_adjacent_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>fixed_adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_terms = '', $previous = true, $taxonomy = 'category' )\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>instead of \u003Ccode>adjacent_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Fix the not-excluding terms bug of get_adjacent_post().",60,2328,2,"2014-08-07T01:40:00.000Z","3.9.40","3.9",[20,69,70,52,71],"links","next-post","previous-post","https:\u002F\u002Fgithub.com\u002Fixkaito\u002Ffixed-adjacent-post","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffixed-adjacent-post.1.0.zip",{"slug":75,"name":76,"version":77,"author":78,"author_profile":79,"description":80,"short_description":81,"active_installs":82,"downloaded":83,"rating":84,"num_ratings":85,"last_updated":86,"tested_up_to":87,"requires_at_least":88,"requires_php":18,"tags":89,"homepage":94,"download_link":95,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"wp-post-navigation","WP Post Navigation","1.2.4","Anas Mir","https:\u002F\u002Fprofiles.wordpress.org\u002Fsharpcoders\u002F","\u003Cp>WP Post Navigation Plugin gives you facility to show Previous and Next Post Links at the Top or Bottom of a Post.\u003Cbr \u002F>\nYou can set to navigate within category or date wise navigation. You’ve the option to set Post Navigation Bar at Bottom, Top or both Top & Bottom.\u003Cbr \u002F>\nYou can apply CSS style to Previous and Next Post Links. You can set custom text instead of Next and Previous Post Titles.\u003Cbr \u002F>\nYou can set custom Image for Next and Previous Post Links.\u003Cbr \u002F>\nManually Place Post Navigation in single.php, just Copy & paste following code anywhere in single.php page under get_header();\u003Cbr \u002F>\n\u003C?php echo isset( $WPPostNavigation ) ? $WPPostNavigation->WP_Custom_Post_Navigation():”; ?>\u003Cbr \u002F>\nFor Help visit: http:\u002F\u002Fsharp-coders.com\u002Fwp-post-navigation\u002F\u003C\u002Fp>\n","Show Next and Previous Post Links at Posts.",2000,57395,82,26,"2017-11-28T18:10:00.000Z","4.7.32","3.0",[90,91,92,93,75],"next-and-previous-post","next-post-link","post-navigation","previous-post-link","http:\u002F\u002Fsharp-coders.com\u002Fwp-post-navigation","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-post-navigation.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":84,"num_ratings":106,"last_updated":107,"tested_up_to":108,"requires_at_least":109,"requires_php":110,"tags":111,"homepage":18,"download_link":114,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"buttons-to-edit-next-previous-post","Buttons to Edit Next\u002FPrevious Post","1.2","Aftab Ali Muni","https:\u002F\u002Fprofiles.wordpress.org\u002Faftabmuni\u002F","\u003Cp>This plugin will add easy shortcut buttons to edit next and previous post in admin edit-post page. You can directly navigate to next and previous post.\u003C\u002Fp>\n","This plugin will add easy shortcut buttons to edit next and previous post in admin edit-post page. You can directly navigate to next and previous post &hellip;",1000,11244,11,"2023-11-26T07:23:00.000Z","6.4.8","3.2","5.0",[112,113],"edit-next-previous-post-button-in-admin","edit-post-page-add-new-button","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbuttons-to-edit-next-previous-post.zip",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":13,"num_ratings":125,"last_updated":126,"tested_up_to":127,"requires_at_least":128,"requires_php":18,"tags":129,"homepage":132,"download_link":133,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"loop-post-navigation-links","Loop Post Navigation Links","3.0.2","Scott Reilly","https:\u002F\u002Fprofiles.wordpress.org\u002Fcoffee2code\u002F","\u003Cp>This plugin provides two template tags for use in single.php to create a post navigation loop, whereby previous to the first post is the last post, and after the last post is first post. Basically, when you’re on the last post and you click to go to the next post, the link takes you to the first post. Likewise, if you’re on the first post and click to go to the previous post, the link takes you to the last post.\u003C\u002Fp>\n\u003Cp>The function \u003Ccode>c2c_next_or_loop_post_link()\u003C\u002Fcode> is identical to WordPress’s \u003Ccode>next_post_link()\u003C\u002Fcode> in every way except when called on the last post in the navigation sequence, in which case it links back to the first post in the navigation sequence.\u003C\u002Fp>\n\u003Cp>The function \u003Ccode>c2c_previous_or_loop_post_link()\u003C\u002Fcode> is identical to WordPress’s \u003Ccode>previous_post_link()\u003C\u002Fcode> in every way except when called on the first post in the navigation sequence, in which case it links back to the last post in the navigation sequence.\u003C\u002Fp>\n\u003Cp>Useful for providing a looping link of posts, such as for a portfolio, or to continually present pertinent posts for visitors to continue reading.\u003C\u002Fp>\n\u003Cp>If you are interested in getting the post itself and not just a link to the post, you can use the \u003Ccode>c2c_get_next_or_loop_post()\u003C\u002Fcode> and \u003Ccode>c2c_get_previous_or_loop_post()\u003C\u002Fcode> functions. If you just want the URL to the post, you can use \u003Ccode>c2c_get_next_or_loop_post_url()\u003C\u002Fcode> and \u003Ccode>c2c_get_previous_or_loop_post_url()\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Links: \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Floop-post-navigation-links\u002F\" rel=\"nofollow ugc\">Plugin Homepage\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floop-post-navigation-links\u002F\" rel=\"ugc\">Plugin Directory Page\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcoffee2code\u002Floop-post-navigation-links\u002F\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fcoffee2code.com\" rel=\"nofollow ugc\">Author Homepage\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Template Tags\u003C\u002Fh3>\n\u003Cp>The plugin provides four template tags for use in your single-post theme templates.\u003C\u002Fp>\n\u003Ch4>Functions\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_next_or_loop_post_link( $format='%link &raquo;', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike WordPress’s \u003Ccode>next_post_link()\u003C\u002Fcode>, this function displays a link to the next chronological post (among all published posts, those in the same category, or those not in certain categories). Unlink \u003Ccode>next_post_link()\u003C\u002Fcode>, when on the last post in the sequence this function will link back to the first post in the sequence, creating a circular loop.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_next_or_loop_post_link( $format='%link &raquo;', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike `c2c_next_or_loop_post_link(), but returns the value without echoing it.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_previous_or_loop_post_link( $format='&laquo; %link', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike WordPress’s \u003Ccode>previous_post_link()\u003C\u002Fcode>, this function displays a link to the previous chronological post (among all published posts, those in the same category, or those not in certain categories). Unlink \u003Ccode>previous_post_link()\u003C\u002Fcode>, when on the first post in the sequence this function will link to the last post in the sequence, creating a circular loop.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_previous_or_loop_post_link( $format='&laquo; %link', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike `c2c_get_previous_or_loop_post_link(), but returns the value without echoing it.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_next_or_loop_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike WordPress’s \u003Ccode>get_adjacent_post()\u003C\u002Fcode> when used to find the next post, except when on the last post in the sequence this function will return the first post in the sequence, creating a circular loop.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_previous_or_loop_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nLike WordPress’s \u003Ccode>get_adjacent_post()\u003C\u002Fcode> when used to find the previous post, except when on the first post in the sequence this function will return the last post in the sequence, creating a circular loop.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_next_or_loop_post_url( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nReturns the URL for the next post or the post at the beginning of the series.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>function c2c_get_previous_or_loop_post_url( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )\u003C\u002Fcode>\u003Cbr \u002F>\nReturns the URL for the previous post or the post at the end of the series.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Arguments\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Ccode>$format\u003C\u002Fcode>\u003Cbr \u002F>\n(optional) A percent-substitution string indicating the format of the entire output string. Use \u003Ccode>%link\u003C\u002Fcode> to represent the next\u002Fprevious post being linked, or \u003Ccode>%title\u003C\u002Fcode> to represent the title of the next\u002Fprevious post.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>$link\u003C\u002Fcode>\u003Cbr \u002F>\n(optional) A percent-substitution string indicating the format of the link itself that gets created for the next\u002Fprevious post. Use \u003Ccode>%link\u003C\u002Fcode> to represent the next\u002Fprevious post being linked, or \u003Ccode>%title\u003C\u002Fcode> to represent the title of the next\u002Fprevious post.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>$in_same_term\u003C\u002Fcode>\u003Cbr \u002F>\n(optional) A boolean value (either true or false) indicating if the next\u002Fprevious post should be in the current post’s same taxonomy term.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>$excluded_terms\u003C\u002Fcode>\u003Cbr \u002F>\n(optional) An array or comma-separated string of category or term IDs to which posts cannot belong.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>$taxonomy\u003C\u002Fcode>\u003Cbr \u002F>\n(optional) Taxonomy, if $in_same_term is true. Default ‘category’.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>\u003Cdiv class=\"loop-navigation\">\n    \u003Cdiv class=\"alignleft\">\u003C?php c2c_previous_or_loop_post_link(); ?>\u003C\u002Fdiv>\n    \u003Cdiv class=\"alignright\">\u003C?php c2c_next_or_loop_post_link(); ?>\u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch3>Hooks\u003C\u002Fh3>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>The plugin is further customizable via eleven hooks. Typically, code making use of hooks should ideally be put into a mu-plugin, a site-specific plugin (which is beyond the scope of this readme to explain), or in theme template files. Many of these filters are likely only of interest to advanced users able to code.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>c2c_previous_or_loop_post_link_output, c2c_next_or_loop_post_link_output (filters)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The ‘c2c_previous_or_loop_post_link_output’ and ‘c2c_next_or_loop_post_link_output’ filters allow you to customize the link markup generated for previous and next looping links, respectively.\u003C\u002Fp>\n\u003Cp>Arguments:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>$format         (string):       Link anchor format.\u003C\u002Fli>\n\u003Cli>$link           (string):       Link permalink format.\u003C\u002Fli>\n\u003Cli>$in_same_term   (bool):         Optional. Whether link should be in a same taxonomy term. Default is false.\u003C\u002Fli>\n\u003Cli>$excluded_terms (array|string): Optional. Array or comma-separated list of excluded term IDs. Default is ”.\u003C\u002Fli>\n\u003Cli>$previous       (bool):         Optional. Whether to display link to previous or next post. Default is true.\u003C\u002Fli>\n\u003Cli>$taxonomy       (string):       Optional. Taxonomy, if $in_same_term is true. Default ‘category’.\u003C\u002Fli>\n\u003Cli>$adjacent       (string):       Whether the post is previous or next.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>  \u003C?php\n      \u002F\u002F Prepend \"Prev:\" to previous link markup.\n      function my_custom_previous_or_loop_link_output( $output, $format, $link, $post, $in_same_term, $excluded_terms, $taxonomy ) {\n        return 'Prev: ' . $output;\n      }\n      add_filter( 'c2c_previous_or_loop_post_link_output', 'my_custom_previous_or_loop_link_output', 10, 4 );\n    ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>c2c_previous_or_loop_post_link_get, c2c_next_or_loop_post_link_get (filters)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The ‘c2c_previous_or_loop_post_link_get’ and ‘c2c_next_or_loop_post_link_get’ filters allow you to customize the link markups generated for previous and next looping links, respectively, but in the non-echoing functions.\u003C\u002Fp>\n\u003Cp>Arguments:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>$output         (string):       The adjacent post link.\u003C\u002Fli>\n\u003Cli>$format         (string):       Link anchor format.\u003C\u002Fli>\n\u003Cli>$link           (string):       Link permalink format.\u003C\u002Fli>\n\u003Cli>$post           (WP_Post):      The adjacent post.\u003C\u002Fli>\n\u003Cli>$in_same_term   (bool):         Optional. Whether link should be in a same taxonomy term. Default is false.\u003C\u002Fli>\n\u003Cli>$excluded_terms (array|string): Optional. Array or comma-separated list of excluded term IDs. Default is ”.\u003C\u002Fli>\n\u003Cli>$previous       (bool):         Optional. Whether to display link to previous or next post. Default is true.\u003C\u002Fli>\n\u003Cli>$taxonomy       (string):       Optional. Taxonomy, if $in_same_term is true. Default ‘category’.\u003C\u002Fli>\n\u003Cli>$adjacent       (string):       Whether the post is previous or next.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>c2c_previous_or_loop_post_link, c2c_next_or_loop_post_link, c2c_get_previous_or_loop_post_link, c2c_get_next_or_loop_post_link, c2c_get_adjacent_or_loop_post, c2c_get_previous_or_loop_post, c2c_get_previous_or_loop_post (actions)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The ‘c2c_previous_or_loop_post_link’ and ‘c2c_next_or_loop_post_link’ actions allow you to use an alternative approach to safely invoke \u003Ccode>c2c_previous_or_loop_post_link()\u003C\u002Fcode> and \u003Ccode>c2c_next_or_loop_post_link()\u003C\u002Fcode>, respectively, in such a way that if the plugin were deactivated or deleted, then your calls to the functions won’t cause errors in your site. The ‘c2c_get_previous_or_loop_post_link’ and ‘c2c_get_next_or_loop_post_link’ filters do the same for the non-echoing \u003Ccode>c2c_previous_or_loop_post_link()\u003C\u002Fcode> and \u003Ccode>c2c_next_or_loop_post_link()\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Arguments:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Same as for for \u003Ccode>c2c_previous_or_loop_post_link()\u003C\u002Fcode> and \u003Ccode>c2c_next_or_loop_post_link()\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003C\u002Fp>\n\u003Cp>Instead of:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php c2c_previous_or_loop_post_link( '\u003Cspan class=\"prev-or-loop-link\">&laquo; %link\u003C\u002Fspan>' ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Do:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php do_action( 'c2c_previous_or_loop_post_link', '\u003Cspan class=\"prev-or-loop-link\">&laquo; %link\u003C\u002Fspan>' ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Template tags (for use in single.php) to create post navigation loop (previous to first post is last post; next\u002Fafter last post is first post).",600,22362,12,"2020-08-27T07:28:00.000Z","5.5.18","4.9",[69,130,22,131,24],"navigation","posts","https:\u002F\u002Fcoffee2code.com\u002Fwp-plugins\u002Floop-post-navigation-links\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Floop-post-navigation-links.3.0.2.zip",{"attackSurface":135,"codeSignals":141,"taintFlows":157,"riskAssessment":158,"analyzedAt":171},{"hooks":136,"ajaxHandlers":137,"restRoutes":138,"shortcodes":139,"cronEvents":140,"entryPointCount":28,"unprotectedCount":28},[],[],[],[],[],{"dangerousFunctions":142,"sqlUsage":143,"outputEscaping":151,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":156},[],{"prepared":144,"raw":145,"locations":146},6,1,[147],{"file":148,"line":149,"context":150},"ambrosite-page-link-plus.php",140,"$wpdb->get_results() with variable interpolation",{"escaped":144,"rawEcho":145,"locations":152},[153],{"file":148,"line":154,"context":155},293,"raw output",[],[],{"summary":159,"deductions":160},"The static analysis of \"ambrosite-nextprevious-page-link-plus\" v1.1 reveals a generally strong security posture. The plugin has a remarkably small attack surface, with no detected AJAX handlers, REST API routes, shortcodes, or cron events. Furthermore, the code signals indicate good practices in most areas. The majority of SQL queries utilize prepared statements, and output escaping is also handled correctly in most instances. The absence of file operations and external HTTP requests further reduces potential attack vectors. The taint analysis also found no critical or high severity issues, indicating that data is likely handled safely within the plugin.\n\nHowever, there are some areas that warrant attention. The complete lack of nonce checks and capability checks across any part of the plugin's entry points is a significant concern. While the current attack surface is zero, this omission represents a potential vulnerability if any entry points are introduced or discovered in the future. The vulnerability history is also remarkably clean, with no recorded CVEs. This is a positive sign, but it doesn't negate the importance of robust security practices like nonces and capability checks, which act as fundamental layers of defense.\n\nIn conclusion, \"ambrosite-nextprevious-page-link-plus\" v1.1 demonstrates excellent coding practices in terms of SQL and output sanitization, and a minimal attack surface. Its clean vulnerability history is a testament to its development. Nevertheless, the absence of essential security checks like nonces and capability checks represents a notable weakness that could be exploited if the plugin's functionality were to expand or if unforeseen vulnerabilities were to arise. A balanced view suggests a plugin that is currently safe but could be made significantly more resilient.",[161,164,166,169],{"reason":162,"points":163},"No nonce checks",8,{"reason":165,"points":163},"No capability checks",{"reason":167,"points":168},"SQL queries without prepared statements detected",3,{"reason":170,"points":168},"Outputs not properly escaped detected","2026-03-16T19:11:27.394Z",{"wat":173,"direct":180},{"assetPaths":174,"generatorPatterns":175,"scriptPaths":176,"versionParams":177},[],[],[],[178,179],"ambrosite-nextprevious-page-link-plus\u002Fambrosite-nextprevious-page-link-plus.php?ver=","ambrosite-nextprevious-page-link-plus\u002Fcss\u002Fambrosite.css?ver=",{"cssClasses":181,"htmlComments":182,"htmlAttributes":183,"restEndpoints":184,"jsGlobals":185,"shortcodeOutput":186},[],[],[],[],[],[]]