[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$faY6kIh0Drq-Y2cK8FkAE43onwKC7T3tHnNVZrKt96xY":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":140,"fingerprints":239},"post-navigator","Post Navigator","1.3.4","lukerollans","https:\u002F\u002Fprofiles.wordpress.org\u002Fhellolukerollansme\u002F","\u003Ch4>Have a feature request?\u003C\u002Fh4>\n\u003Cp>Sweet! Feature requests on Github: https:\u002F\u002Fgithub.com\u002Fplugify\u002Fpost-navigator\u002Fissues?labels=enhancement\u003C\u002Fp>\n\u003Ch4>Want to contribute?\u003C\u002Fh4>\n\u003Cp>Post Navigator on Github: http:\u002F\u002Fgithub.com\u002Fplugify\u002Fpost-navigator\u003C\u002Fp>\n\u003Cp>Adds a simple dropdown menu to the publish box which allows a user to select a useful action immediately upon saving or publishing any post. The plugin also adds two new buttons to the edit post page, “Previous” and “Next”. These buttons allow you to immediately navigate to the previous or next post of any type in the admin area.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>All features of Post Navigator support custom post types\u003C\u002Fli>\n\u003Cli>Upon save, navigate directly to the “Add New” page of the current post type\u003C\u002Fli>\n\u003Cli>Navigate to parent post upon save\u003C\u002Fli>\n\u003Cli>Navigate to child post upon save. When selected, a second dropdown will automatically populate with the children of the current post\u003C\u002Fli>\n\u003Cli>Navigate to a sibling post upon save. When selected, a second dropdown will automatically populate with the siblings of the current post\u003C\u002Fli>\n\u003Cli>Navigate to next or previous post upon save\u003C\u002Fli>\n\u003Cli>Instantly navigate to next or previous post by using the “Previous” and “Next” buttons. These will be displayed, if available, in the header of the current\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin was created mainly as a tool to speed up content entry given it allows you to bypass multiple page loads. For example, when adding several new pages, simply choose the “Add a new Page” option and upon saving the current page you will immediately be taken to the “Add a New Page” screen.\u003C\u002Fp>\n\u003Cp>If you have found this plugin useful, consider taking a moment to rate it.\u003C\u002Fp>\n","Adds simple navigation tools to the admin area when editing or creating posts, allowing for quick and time saving navigation",100,8121,90,11,"2014-04-18T04:31:00.000Z","3.7.41","2.9","",[20,21,22,23,24],"admin","navigation","next","post-navigation","posts","http:\u002F\u002Fplugify.io\u002Fplugin\u002Fpost-navigator","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-navigator.1.3.4.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"hellolukerollansme",4,710,30,84,"2026-04-04T05:52:58.123Z",[40,60,81,100,120],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":11,"downloaded":48,"rating":11,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":18,"download_link":59,"security_score":11,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"keep-pagination-in-same-taxonomy","Keep Pagination in Same Taxonomy","0.15","keith_wp","https:\u002F\u002Fprofiles.wordpress.org\u002Fkeith_wp\u002F","\u003Cp>Instantly join separate posts together by making the Previous\u002FNext Post links on a Single Post look for other posts that share the same taxonomies.\u003C\u002Fp>\n\u003Cp>This lightweight plugin simply adds a filter to your selected taxonomies (both default and custom) so that any theme can have its post navigation links stay in the same category as the currently viewed post.\u003C\u002Fp>\n","Makes any previous\u002Fnext post links use the same taxonomy as the current post.",2552,3,"2025-04-07T15:19:00.000Z","6.7.5","4.0","8.3",[55,56,23,57,58],"link-posts","pagination","previous-next-posts","previous-next-links","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkeep-pagination-in-same-taxonomy.0.15.zip",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":70,"num_ratings":71,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":18,"tags":75,"homepage":79,"download_link":80,"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",[76,77,23,78,61],"next-and-previous-post","next-post-link","previous-post-link","http:\u002F\u002Fsharp-coders.com\u002Fwp-post-navigation","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-post-navigation.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":11,"num_ratings":91,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":18,"tags":95,"homepage":98,"download_link":99,"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",[96,21,22,24,97],"links","previous","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",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":11,"num_ratings":110,"last_updated":111,"tested_up_to":112,"requires_at_least":113,"requires_php":114,"tags":115,"homepage":118,"download_link":119,"security_score":11,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"admin-posts-navigation","Admin Posts Navigation","1.4.1","The Website Factory","https:\u002F\u002Fprofiles.wordpress.org\u002Fthewebsitefactory\u002F","\u003Cp>Admin Posts Navigation solves a common WordPress admin workflow problem: having to go back to the post list every time you want to edit the next or previous post.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Key Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Seamless Navigation\u003C\u002Fstrong>: Navigate directly between posts without returning to the post list\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Customizable Sorting\u003C\u002Fstrong>: Choose between Date Published, Alphabetical, or Post ID sorting\u003C\u002Fli>\n\u003Cli>\u003Cstrong>User Preferences\u003C\u002Fstrong>: Each user’s sort preferences are saved per post type\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Universal Support\u003C\u002Fstrong>: Works with posts, pages, and all custom post types automatically\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Dual Editor Support\u003C\u002Fstrong>: Full compatibility with both Classic Editor and Gutenberg Block Editor\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Smart Ordering\u003C\u002Fstrong>: Uses appropriate default ordering (date for posts, alphabetical for pages)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Position Tracking\u003C\u002Fstrong>: Shows your current position (e.g., “Position: 3 of 15 posts”)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security First\u003C\u002Fstrong>: Rate limiting, nonce verification, and capability checks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance Optimized\u003C\u002Fstrong>: Intelligent caching and optimized database queries\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer Friendly\u003C\u002Fstrong>: Multiple filter hooks for customization\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>How It Works:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>In the \u003Cstrong>Classic Editor\u003C\u002Fstrong>, navigation buttons appear below the post title with a sorting dropdown that lets you choose between Date Published, Alphabetical, or Post ID ordering.\u003C\u002Fp>\n\u003Cp>In \u003Cstrong>Gutenberg\u003C\u002Fstrong>, a “Post Navigation” panel appears in the Document Settings sidebar with Previous\u002FNext buttons and a sorting dropdown for customizing the navigation order.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sorting Options:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Date Published\u003C\u002Fstrong>: Navigate by publication date (newest first for posts, oldest first for pages)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Alphabetical\u003C\u002Fstrong>: Navigate by post title in alphabetical order (A-Z)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Post ID\u003C\u002Fstrong>: Navigate by WordPress post ID in ascending order\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Each user’s sorting preference is remembered per post type, so you can have different sorting for posts vs. pages vs. custom post types.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Perfect For:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Content managers editing multiple posts in sequence\u003C\u002Fli>\n\u003Cli>Bloggers reviewing and updating existing content\u003C\u002Fli>\n\u003Cli>Developers working with custom post types\u003C\u002Fli>\n\u003Cli>Anyone who finds the default WordPress admin workflow tedious\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The plugin automatically detects all your custom post types and provides navigation for any content type you can edit.\u003C\u002Fp>\n\u003Ch3>Developer Hooks\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Filters:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>twf_admin_posts_navigation_excluded_types\u003C\u002Fcode> – Exclude specific post types from navigation\u003C\u002Fli>\n\u003Cli>\u003Ccode>twf_admin_posts_navigation_orderby\u003C\u002Fcode> – Customize ordering for specific post types  \u003C\u002Fli>\n\u003Cli>\u003Ccode>twf_admin_posts_navigation_order\u003C\u002Fcode> – Customize sort direction for specific post types\u003C\u002Fli>\n\u003Cli>\u003Ccode>twf_admin_posts_navigation_query_args\u003C\u002Fcode> – Modify the query arguments for finding posts\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Example Usage:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`php\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u002F\u002F Exclude a custom post type\u003Cbr \u002F>\nadd_filter(‘twf_admin_posts_navigation_excluded_types’, function($excluded) {\u003Cbr \u002F>\n    $excluded[] = ‘my_private_post_type’;\u003Cbr \u002F>\n    return $excluded;\u003Cbr \u002F>\n});\u003C\u002Fp>\n\u003Cp>\u002F\u002F Custom ordering for events\u003Cbr \u002F>\nadd_filter(‘twf_admin_posts_navigation_orderby’, function($orderby, $post_type) {\u003Cbr \u002F>\n    if ($post_type === ‘event’) {\u003Cbr \u002F>\n        return ‘meta_value’;\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    return $orderby;\u003Cbr \u002F>\n}, 10, 2);\u003C\u002Fp>\n\u003Cp>\u002F\u002F Navigate only through featured posts\u003Cbr \u002F>\nadd_filter(‘twf_admin_posts_navigation_query_args’, function($args, $current_post) {\u003Cbr \u002F>\n    if ($current_post->post_type === ‘post’) {\u003Cbr \u002F>\n        $args[‘meta_query’] = array(\u003Cbr \u002F>\n            array(\u003Cbr \u002F>\n                ‘key’ => ‘featured_post’,\u003Cbr \u002F>\n                ‘value’ => ‘1’,\u003Cbr \u002F>\n                ‘compare’ => ‘=’\u003Cbr \u002F>\n            )\u003Cbr \u002F>\n        );\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n    return $args;\u003Cbr \u002F>\n}, 10, 2);\u003Cbr \u002F>\n    `\u003C\u002Fp>\n","Navigate between posts and pages without returning to the post list. Works with Classic Editor, Gutenberg, and all Custom Post Types.",80,528,1,"2025-06-30T19:09:00.000Z","6.8.5","5.0","7.4",[20,116,21,117,24],"editor","pages","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadmin-posts-navigation","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadmin-posts-navigation.1.4.1.zip",{"slug":121,"name":122,"version":123,"author":124,"author_profile":125,"description":126,"short_description":127,"active_installs":128,"downloaded":129,"rating":11,"num_ratings":110,"last_updated":130,"tested_up_to":131,"requires_at_least":132,"requires_php":18,"tags":133,"homepage":138,"download_link":139,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"rp-post-nav","RP Post Nav","1.1","Rommel Plofino","https:\u002F\u002Fprofiles.wordpress.org\u002Frplofino\u002F","\u003Cp>RP Post Nav plug-in gives you facility to:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate within Post Category\u002FTaxonomy or Date Wise Navigation.\u003C\u002Fli>\n\u003Cli>Option to set Post Navigation Bar at Bottom, Top or both Top & Bottom.\u003C\u002Fli>\n\u003Cli>Apply CSS Style to Previous and Next Post Display.\u003C\u002Fli>\n\u003Cli>Customizing Label Text instead of default Next\u002FPrevious Labels.\u003C\u002Fli>\n\u003Cli>Customizing Image for Next\u002FPrevious Post Background.\u003C\u002Fli>\n\u003Cli>Select Custom Post Types and Taxonomies for related post.\u003C\u002Fli>\n\u003Cli>Manually Place RP Post Nav Shortcode.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>For Help visit: https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Frp-post-nav\u003C\u002Fp>\n","Show Next and Previous Post Links, Thumbnails or Excerpt at Posts, Pages, Media or Custom Post Types.",40,4287,"2015-07-23T00:50:00.000Z","4.2.39","3.0.1",[134,135,23,136,137],"next-post","next-previous-post-navigation","post-navigation-link","previous-post","http:\u002F\u002Fwww.rplofino.freehosting007.com\u002Frp-post-nav","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frp-post-nav.zip",{"attackSurface":141,"codeSignals":181,"taintFlows":197,"riskAssessment":223,"analyzedAt":238},{"hooks":142,"ajaxHandlers":172,"restRoutes":178,"shortcodes":179,"cronEvents":180,"entryPointCount":110,"unprotectedCount":110},[143,148,151,154,158,162,166],{"type":144,"name":145,"callback":145,"file":146,"line":147},"action","init","class.post-navigator.php",15,{"type":144,"name":149,"callback":149,"file":146,"line":150},"admin_init",16,{"type":144,"name":152,"callback":152,"file":146,"line":153},"admin_menu",17,{"type":144,"name":155,"callback":156,"file":146,"line":157},"post_submitbox_misc_actions","_ui",20,{"type":144,"name":159,"callback":160,"file":146,"line":161},"admin_print_footer_scripts","_js",21,{"type":144,"name":163,"callback":164,"file":146,"line":165},"admin_enqueue_scripts","_css",22,{"type":167,"name":168,"callback":169,"priority":170,"file":146,"line":171},"filter","redirect_post_location","_handler",10,96,[173],{"action":174,"nopriv":175,"callback":176,"hasNonce":175,"hasCapCheck":175,"file":146,"line":177},"post_lookup",false,"ajax_post_lookup",25,[],[],[],{"dangerousFunctions":182,"sqlUsage":183,"outputEscaping":185,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":196},[],{"prepared":28,"raw":28,"locations":184},[],{"escaped":91,"rawEcho":34,"locations":186},[187,190,192,194],{"file":146,"line":188,"context":189},147,"raw output",{"file":146,"line":191,"context":189},167,{"file":146,"line":193,"context":189},170,{"file":146,"line":195,"context":189},243,[],[198,215],{"entryPoint":199,"graph":200,"unsanitizedCount":110,"severity":214},"_options_page (class.post-navigator.php:212)",{"nodes":201,"edges":212},[202,207],{"id":203,"type":204,"label":205,"file":146,"line":206},"n0","source","$_POST['post_types']",216,{"id":208,"type":209,"label":210,"file":146,"line":206,"wp_function":211},"n1","sink","update_option() [Settings Manipulation]","update_option",[213],{"from":203,"to":208,"sanitized":175},"low",{"entryPoint":216,"graph":217,"unsanitizedCount":110,"severity":214},"\u003Cclass.post-navigator> (class.post-navigator.php:0)",{"nodes":218,"edges":221},[219,220],{"id":203,"type":204,"label":205,"file":146,"line":206},{"id":208,"type":209,"label":210,"file":146,"line":206,"wp_function":211},[222],{"from":203,"to":208,"sanitized":175},{"summary":224,"deductions":225},"The \"post-navigator\" plugin v1.3.4 exhibits a mixed security posture. While it demonstrates good practices in several areas, including the absence of dangerous functions, SQL injection risks, and external HTTP requests, significant concerns arise from its attack surface and input sanitization. The presence of an unprotected AJAX handler represents a critical entry point that could be exploited by unauthenticated users. Furthermore, the taint analysis reveals flows with unsanitized paths, indicating potential vulnerabilities if user-supplied data is not properly handled before being processed.\n\nThe plugin's vulnerability history is currently clean, with no known CVEs recorded. This suggests a potentially well-maintained codebase or a lack of past scrutiny. However, this clean history, combined with the identified weaknesses in the static analysis, should not be interpreted as a guarantee of future security. The unprotected AJAX handler and unsanitized taint flows are clear indicators of immediate risk that require attention.\n\nIn conclusion, the \"post-navigator\" plugin has strengths in its avoidance of common risky practices. However, the identified unprotected AJAX handler and unsanitized taint flows are serious security weaknesses that significantly elevate the risk profile. The absence of known vulnerabilities is a positive, but it doesn't negate the existing code-level risks. Developers should prioritize addressing these entry points and sanitization issues.",[226,228,230,233,236],{"reason":227,"points":170},"Unprotected AJAX handler",{"reason":229,"points":170},"Flows with unsanitized paths",{"reason":231,"points":232},"Missing nonce checks on AJAX",7,{"reason":234,"points":235},"Unescaped output (25% of outputs)",5,{"reason":237,"points":235},"Missing capability checks","2026-03-16T20:36:23.738Z",{"wat":240,"direct":249},{"assetPaths":241,"generatorPatterns":244,"scriptPaths":245,"versionParams":246},[242,243],"\u002Fwp-content\u002Fplugins\u002Fpost-navigator\u002Fassets\u002Fstyles\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fpost-navigator\u002Fassets\u002Fjs\u002Fscripts.js",[],[243],[247,248],"post-navigator\u002Fassets\u002Fstyles\u002Fstyle.css?ver=","post-navigator\u002Fassets\u002Fjs\u002Fscripts.js?ver=",{"cssClasses":250,"htmlComments":256,"htmlAttributes":257,"restEndpoints":268,"jsGlobals":270,"shortcodeOutput":273},[4,251,252,253,254,255],"action-title","post-save-action-id-parent","post-navigator-buttons","post-navigator-prev","post-navigator-next",[],[258,259,260,261,262,263,264,265,266,267],"id=\"post-navigator\"","id=\"action-box\"","id=\"post-save-action\"","id=\"post-save-action-id\"","id=\"post_type\"","id=\"exclude\"","id=\"post-navigator-buttons\"","id=\"post-navigator-prev\"","id=\"post-navigator-next\"","id=\"post-navigator-settings\"",[269],"\u002Fwp-json\u002Fpost-navigator\u002F",[271,272],"AJAX.url","AJAX.template_directory",[]]