{"id":5693,"date":"2009-07-23T22:06:30","date_gmt":"2009-07-23T22:06:30","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/loop-post-navigation-links\/"},"modified":"2020-08-27T07:28:01","modified_gmt":"2020-08-27T07:28:01","slug":"loop-post-navigation-links","status":"publish","type":"plugin","link":"https:\/\/twd.wordpress.org\/plugins\/loop-post-navigation-links\/","author":3606,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.0.2","stable_tag":"3.0.2","tested":"5.5.18","requires":"4.9","requires_php":"","requires_plugins":"","header_name":"Loop Post Navigation Links","header_author":"Scott Reilly","header_description":"","assets_banners_color":"0074a2","last_updated":"2020-08-27 07:28:01","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick&hosted_button_id=6ARCFJ9TX3522","header_plugin_uri":"https:\/\/coffee2code.com\/wp-plugins\/loop-post-navigation-links\/","header_author_uri":"https:\/\/coffee2code.com\/","rating":5,"author_block_rating":0,"active_installs":600,"downloads":22417,"num_ratings":12,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"1.0":{"tag":"1.0","author":"coffee2code","date":"2009-07-23 22:06:30"},"1.5":{"tag":"1.5","author":"coffee2code","date":"2009-07-23 22:09:00"},"1.6":{"tag":"1.6","author":"coffee2code","date":"2010-08-25 17:33:52"},"1.6.1":{"tag":"1.6.1","author":"coffee2code","date":"2011-07-15 17:08:57"},"1.6.2":{"tag":"1.6.2","author":"coffee2code","date":"2012-01-04 06:40:36"},"1.6.3":{"tag":"1.6.3","author":"coffee2code","date":"2012-06-05 14:37:08"},"2.0":{"tag":"2.0","author":"coffee2code","date":"2012-12-12 22:38:24"},"2.5":{"tag":"2.5","author":"coffee2code","date":"2013-12-31 21:49:07"},"2.5.1":{"tag":"2.5.1","author":"coffee2code","date":"2014-08-26 06:20:03"},"2.5.2":{"tag":"2.5.2","author":"coffee2code","date":"2015-02-13 08:26:18"},"2.6":{"tag":"2.6","author":"coffee2code","date":"2015-07-15 05:37:19"},"2.6.1":{"tag":"2.6.1","author":"coffee2code","date":"2016-04-14 20:05:24"},"3.0":{"tag":"3.0","author":"coffee2code","date":"2020-01-30 00:27:48"},"3.0.1":{"tag":"3.0.1","author":"coffee2code","date":"2020-05-11 07:00:59"},"3.0.2":{"tag":"3.0.2","author":"coffee2code","date":"2020-08-27 07:28:01"}},"upgrade_notice":{"3.0.2":"<p>Trivial update:minor tweaks that should go unnoticed, restructured unit test file structure, added a TODO.md file, and noted compatibility through WP 5.5+.<\/p>","3.0.1":"<p>Trivial update: Updated a few URLs to be HTTPS and noted compatibility through WP 5.4+.<\/p>","3.0":"<p>Revival update: added functions for getting URL of previous\/next post, modernized unit tests, added CHANGELOG.md, changed plugin initialization, updated compatibility to be WP 4.9-5.3+ updated copyright date (2020), and much more. See changelog for potential breaking change to a filter.<\/p>","2.6.1":"<p>Trivial update: improved support for localization, minor unit test tweaks, verified compatibility through WP 4.4+, and updated copyright date (2016)<\/p>","2.6":"<p>Recommended minor update: Added new template tags for getting the adjacent or looped post object; minor bug fixes; noted compatibility through WP 4.3+<\/p>","2.5.2":"<p>Trivial update: noted compatibility through WP 4.1+ and updated copyright date (2015)<\/p>","2.5.1":"<p>Trivial update: noted compatibility through WP 4.0+; added plugin icon.<\/p>","2.5":"<p>Major update: added support for navigating by taxonomy; added non-echoing versions of functions, and more filters; added unit tests; noted compatibility through WP 3.8+; dropped compatibility with WP older than 3.6<\/p>","2.0":"<p>Recommended major update: synced with changes made to WP; added filters; changed arguments to existing filters; renamed and deprecated all existing functions and filters; noted compatibility through WP 3.5+; and more. (All your old usage will still work, though)<\/p>","1.6.3":"<p>Trivial update: noted compatibility through WP 3.4+; explicitly stated license<\/p>","1.6.2":"<p>Trivial update: noted compatibility through WP 3.3+ and updated copyright date<\/p>","1.6.1":"<p>Trivial update: noted compatibility through WP 3.2+ and updated copyright date<\/p>","1.6":"<p>Minor update. Highlights: adds &#039;rel=&#039; attribute to links; minor tweaks; verified WP 3.0 compatibility.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"12"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":972962,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":831764,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0","1.5","1.6","1.6.1","1.6.2","1.6.3","2.0","2.5","2.5.1","2.5.2","2.6","2.6.1","3.0","3.0.1","3.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[175,1753,3980,166,3981],"plugin_category":[43],"plugin_contributors":[78189],"plugin_business_model":[],"class_list":["post-5693","plugin","type-plugin","status-publish","hentry","plugin_tags-links","plugin_tags-navigation","plugin_tags-next","plugin_tags-posts","plugin_tags-previous","plugin_category-customization","plugin_contributors-coffee2code","plugin_committers-coffee2code"],"banners":{"banner":"https:\/\/ps.w.org\/loop-post-navigation-links\/assets\/banner-772x250.png?rev=831764","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/loop-post-navigation-links\/assets\/icon-128x128.png?rev=972962","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>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.<\/p>\n\n<p>The function <code>c2c_next_or_loop_post_link()<\/code> is identical to WordPress's <code>next_post_link()<\/code> 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.<\/p>\n\n<p>The function <code>c2c_previous_or_loop_post_link()<\/code> is identical to WordPress's <code>previous_post_link()<\/code> 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.<\/p>\n\n<p>Useful for providing a looping link of posts, such as for a portfolio, or to continually present pertinent posts for visitors to continue reading.<\/p>\n\n<p>If you are interested in getting the post itself and not just a link to the post, you can use the <code>c2c_get_next_or_loop_post()<\/code> and <code>c2c_get_previous_or_loop_post()<\/code> functions. If you just want the URL to the post, you can use <code>c2c_get_next_or_loop_post_url()<\/code> and <code>c2c_get_previous_or_loop_post_url()<\/code>.<\/p>\n\n<p>Links: <a href=\"https:\/\/coffee2code.com\/wp-plugins\/loop-post-navigation-links\/\">Plugin Homepage<\/a> | <a href=\"https:\/\/wordpress.org\/plugins\/loop-post-navigation-links\/\">Plugin Directory Page<\/a> | <a href=\"https:\/\/github.com\/coffee2code\/loop-post-navigation-links\/\">GitHub<\/a> | <a href=\"https:\/\/coffee2code.com\">Author Homepage<\/a><\/p>\n\n<h3>Template Tags<\/h3>\n\n<p>The plugin provides four template tags for use in your single-post theme templates.<\/p>\n\n<h4>Functions<\/h4>\n\n<ul>\n<li><p><code>function c2c_next_or_loop_post_link( $format='%link &amp;raquo;', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike WordPress's <code>next_post_link()<\/code>, 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 <code>next_post_link()<\/code>, when on the last post in the sequence this function will link back to the first post in the sequence, creating a circular loop.<\/p><\/li>\n<li><p><code>function c2c_get_next_or_loop_post_link( $format='%link &amp;raquo;', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike `c2c_next_or_loop_post_link(), but returns the value without echoing it.<\/p><\/li>\n<li><p><code>function c2c_previous_or_loop_post_link( $format='&amp;laquo; %link', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike WordPress's <code>previous_post_link()<\/code>, 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 <code>previous_post_link()<\/code>, when on the first post in the sequence this function will link to the last post in the sequence, creating a circular loop.<\/p><\/li>\n<li><p><code>function c2c_get_previous_or_loop_post_link( $format='&amp;laquo; %link', $link='%title', $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike `c2c_get_previous_or_loop_post_link(), but returns the value without echoing it.<\/p><\/li>\n<li><p><code>function c2c_get_next_or_loop_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike WordPress's <code>get_adjacent_post()<\/code> 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.<\/p><\/li>\n<li><p><code>function c2c_get_previous_or_loop_post( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nLike WordPress's <code>get_adjacent_post()<\/code> 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.<\/p><\/li>\n<li><p><code>function c2c_get_next_or_loop_post_url( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nReturns the URL for the next post or the post at the beginning of the series.<\/p><\/li>\n<li><p><code>function c2c_get_previous_or_loop_post_url( $in_same_term = false, $excluded_terms = '', $taxonomy = 'category' )<\/code>\nReturns the URL for the previous post or the post at the end of the series.<\/p><\/li>\n<\/ul>\n\n<h4>Arguments<\/h4>\n\n<ul>\n<li><p><code>$format<\/code>\n(optional) A percent-substitution string indicating the format of the entire output string. Use <code>%link<\/code> to represent the next\/previous post being linked, or <code>%title<\/code> to represent the title of the next\/previous post.<\/p><\/li>\n<li><p><code>$link<\/code>\n(optional) A percent-substitution string indicating the format of the link itself that gets created for the next\/previous post. Use <code>%link<\/code> to represent the next\/previous post being linked, or <code>%title<\/code> to represent the title of the next\/previous post.<\/p><\/li>\n<li><p><code>$in_same_term<\/code>\n(optional) A boolean value (either true or false) indicating if the next\/previous post should be in the current post's same taxonomy term.<\/p><\/li>\n<li><p><code>$excluded_terms<\/code>\n(optional) An array or comma-separated string of category or term IDs to which posts cannot belong.<\/p><\/li>\n<li><p><code>$taxonomy<\/code>\n(optional) Taxonomy, if $in_same_term is true. Default 'category'.<\/p><\/li>\n<\/ul>\n\n<h3>Examples<\/h3>\n\n<pre><code>&lt;div class=\"loop-navigation\"&gt;\n    &lt;div class=\"alignleft\"&gt;&lt;?php c2c_previous_or_loop_post_link(); ?&gt;&lt;\/div&gt;\n    &lt;div class=\"alignright\"&gt;&lt;?php c2c_next_or_loop_post_link(); ?&gt;&lt;\/div&gt;\n&lt;\/div&gt;&lt;h3&gt;Hooks&lt;\/h3&gt;\n<\/code><\/pre>\n\n<p>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.<\/p>\n\n<p><strong>c2c_previous_or_loop_post_link_output, c2c_next_or_loop_post_link_output (filters)<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>Arguments:<\/p>\n\n<ul>\n<li>$format         (string):       Link anchor format.<\/li>\n<li>$link           (string):       Link permalink format.<\/li>\n<li>$in_same_term   (bool):         Optional. Whether link should be in a same taxonomy term. Default is false.<\/li>\n<li>$excluded_terms (array|string): Optional. Array or comma-separated list of excluded term IDs. Default is ''.<\/li>\n<li>$previous       (bool):         Optional. Whether to display link to previous or next post. Default is true.<\/li>\n<li>$taxonomy       (string):       Optional. Taxonomy, if $in_same_term is true. Default 'category'.<\/li>\n<li>$adjacent       (string):       Whether the post is previous or next.<\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<pre><code>  &lt;?php\n      \/\/ 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    ?&gt;\n<\/code><\/pre>\n\n<p><strong>c2c_previous_or_loop_post_link_get, c2c_next_or_loop_post_link_get (filters)<\/strong><\/p>\n\n<p>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.<\/p>\n\n<p>Arguments:<\/p>\n\n<ul>\n<li>$output         (string):       The adjacent post link.<\/li>\n<li>$format         (string):       Link anchor format.<\/li>\n<li>$link           (string):       Link permalink format.<\/li>\n<li>$post           (WP_Post):      The adjacent post.<\/li>\n<li>$in_same_term   (bool):         Optional. Whether link should be in a same taxonomy term. Default is false.<\/li>\n<li>$excluded_terms (array|string): Optional. Array or comma-separated list of excluded term IDs. Default is ''.<\/li>\n<li>$previous       (bool):         Optional. Whether to display link to previous or next post. Default is true.<\/li>\n<li>$taxonomy       (string):       Optional. Taxonomy, if $in_same_term is true. Default 'category'.<\/li>\n<li>$adjacent       (string):       Whether the post is previous or next.<\/li>\n<\/ul>\n\n<p><strong>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)<\/strong><\/p>\n\n<p>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 <code>c2c_previous_or_loop_post_link()<\/code> and <code>c2c_next_or_loop_post_link()<\/code>, 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 <code>c2c_previous_or_loop_post_link()<\/code> and <code>c2c_next_or_loop_post_link()<\/code>.<\/p>\n\n<p>Arguments:<\/p>\n\n<ul>\n<li>Same as for for <code>c2c_previous_or_loop_post_link()<\/code> and <code>c2c_next_or_loop_post_link()<\/code><\/li>\n<\/ul>\n\n<p>Example:<\/p>\n\n<p>Instead of:<\/p>\n\n<pre><code>&lt;?php c2c_previous_or_loop_post_link( '&lt;span class=\"prev-or-loop-link\"&gt;&amp;laquo; %link&lt;\/span&gt;' ); ?&gt;\n<\/code><\/pre>\n\n<p>Do:<\/p>\n\n<pre><code>&lt;?php do_action( 'c2c_previous_or_loop_post_link', '&lt;span class=\"prev-or-loop-link\"&gt;&amp;laquo; %link&lt;\/span&gt;' ); ?&gt;\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Install via the built-in WordPress plugin installer. Or install the plugin code inside the plugins directory for your site (typically <code>wp-content\/plugins\/<\/code>).<\/li>\n<li>Activate the plugin through the 'Plugins' admin menu in WordPress.<\/li>\n<li>Use <code>c2c_next_or_loop_post_link()<\/code> template tag instead of <code>next_post_link()<\/code>, and\/or <code>c2c_previous_or_loop_post_link()<\/code> template tag instead of <code>previous_post_link()<\/code>, in your single-post template (e.g. single.php).<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>3.0.2 (2020-08-26)<\/h4>\n\n<p>Highlights:<\/p>\n\n<p>This minor update has some minor tweaks that should go unnoticed, restructures unit test file structure, adds a TODO.md file, and notes compatibility through WP 5.5+.<\/p>\n\n<p>Details:<\/p>\n\n<ul>\n<li>Change: Unset loop flag in class just after it's used to ensure it gets reset<\/li>\n<li>Change: Escape URL for post before being output in link (hardening)<\/li>\n<li>Change: Restructure unit test file structure\n\n<ul>\n<li>New: Create new subdirectory <code>phpunit\/<\/code> to house all files related to unit testing<\/li>\n<li>Change: Move <code>bin\/<\/code> to <code>phpunit\/bin\/<\/code><\/li>\n<li>Change: Move <code>tests\/bootstrap.php<\/code> to <code>phpunit\/<\/code><\/li>\n<li>Change: Move <code>tests\/<\/code> to <code>phpunit\/tests\/<\/code><\/li>\n<li>Change: Rename <code>phpunit.xml<\/code> to <code>phpunit.xml.dist<\/code> per best practices<\/li>\n<\/ul><\/li>\n<li>Change: Note compatibility through WP 5.5+<\/li>\n<li>Unit tests:\n\n<ul>\n<li>New: Add test for hook registrations<\/li>\n<li>New: Add tests for <code>modify_nextprevious_post_where()<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n\n<h4>3.0.1 (2020-05-10)<\/h4>\n\n<ul>\n<li>Change: Use HTTPS for link to WP SVN repository in bin script for configuring unit tests<\/li>\n<li>Change: Note compatibility through WP 5.4+<\/li>\n<li>Change: Update links to coffee2code.com to be HTTPS<\/li>\n<\/ul>\n\n<h4>3.0 (2020-01-28)<\/h4>\n\n<p>Highlights:<\/p>\n\n<ul>\n<li>Significant update after a long hiatus! Adds functions for getting the URL of the previous\/next post, modernizes unit tests, adds CHANGELOG.md, adds plugin to GitHub, changes plugin initialization, updates compatibility to be for WP 4.9-5.3+, and many other documentation and behind-the-scenes changes.<\/li>\n<li>Note that there is an incompatible fix for missing and incorrect arguments for the <code>c2c_{$adjacent}_or_loop_post_link_output<\/code> filter. This change won't affect you unless you have custom code making use of the filter, which is unlikely for almost all users.<\/li>\n<\/ul>\n\n<p>Details:<\/p>\n\n<ul>\n<li>New: Add <code>c2c_get_next_or_loop_post_url()<\/code> and <code>c2c_get_previous_or_loop_post_url()<\/code> to get URL of adjacent\/looped post<\/li>\n<li>New: Add CHANGELOG.md file and move all but most recent changelog entries into it<\/li>\n<li>New: Add README.md file<\/li>\n<li>New: Add TODO.md and move existing TODO list from top of main plugin file into it (and add more items to the list)<\/li>\n<li>New: Add inline documentation for hooks<\/li>\n<li>New: Add GitHub link to readme.txt<\/li>\n<li>Fix: Add missing argument <code>$previous<\/code> and remove argument <code>$post<\/code> from <code>c2c_{$adjacent}_or_loop_post_link_output<\/code> hook invocation<\/li>\n<li>Change: Add <code>$adjacent<\/code> argument to a number of filters, to sync with WP core\n\n<ul>\n<li>Adds to <code>{$adjacent}_post_link<\/code>, <code>{$adjacent}_or_loop_post_link<\/code>, <code>c2c_{$adjacent}_or_loop_post_link_get<\/code>, and <code>c2c_{$adjacent}_or_loop_post_link_output<\/code><\/li>\n<\/ul><\/li>\n<li>Change: Use <code>c2c_get_adjacent_or_loop_post()<\/code> to obtain post, rather than duplicating its functionality in <code>c2c_get_adjacent_or_loop_post_link()<\/code><\/li>\n<li>Change: Remove unnecessary (and incorrect) determination of adjacent post in <code>c2c_adjacent_or_loop_post_link()<\/code><\/li>\n<li>Change: Use a different variable name to avoid changing variable sent as function argument and later passed as argument to filter<\/li>\n<li>Change: Initialize plugin on 'plugins_loaded' action instead of on load<\/li>\n<li>Change: Use <code>apply_filters_deprecated()<\/code> to formally deprecate the <code>{$adjacent}_or_loop_post_link<\/code> filter<\/li>\n<li>Change: Update code formatting to match modern WordPress standards<\/li>\n<li>Change: Remove <code>load_textdomain()<\/code> and just load the textdomain within <code>init()<\/code><\/li>\n<li>Unit tests:\n\n<ul>\n<li>Change: Change <code>expected()<\/code> to optionally not include arrow quotes<\/li>\n<li>Change: Update unit test install script and bootstrap to use latest WP unit test repo<\/li>\n<li>Change: Enable more error output for unit tests<\/li>\n<li>Change: Comment out unit tests that weren't actually testing anything<\/li>\n<li>Fix: Don't declare <code>$posts<\/code> as being static since it's never referenced as if it was<\/li>\n<li>New: Add tests for hooks<\/li>\n<\/ul><\/li>\n<li>Change: Note compatibility through WP 5.3+<\/li>\n<li>Change: Drop compatibility with versions of WP older than 4.9<\/li>\n<li>Change: Include documentation on filter arguments<\/li>\n<li>Change: Tweak formatting for installation instructions<\/li>\n<li>Change: Remove documentation for non-existent parameters of <code>modify_nextprevious_post_where()<\/code><\/li>\n<li>Change: Remove unnecessary <code>echo<\/code> in code example<\/li>\n<li>Change: Modify formatting of hook name in readme to prevent being uppercased when shown in the Plugin Directory<\/li>\n<li>Change: Rename readme.txt section from 'Filters' to 'Hooks' and provide a better section intro<\/li>\n<li>Change: Update License URI to be HTTPS<\/li>\n<li>Change: Update copyright date (2020)<\/li>\n<li>Change: Update installation instruction to prefer built-in installer over .zip file<\/li>\n<\/ul>\n\n<p><em>Full changelog is available in <a href=\"https:\/\/github.com\/coffee2code\/loop-post-navigation-links\/blob\/master\/CHANGELOG.md\">CHANGELOG.md<\/a>.<\/em><\/p>","raw_excerpt":"Template tags (for use in single.php) to create post navigation loop (previous to first post is last post; next\/after last post is first post).","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/5693","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"author":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/users\/3606"}],"replies":[{"embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=5693"}],"wp:attachment":[{"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=5693"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=5693"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=5693"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=5693"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=5693"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/twd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=5693"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}