{"id":174,"date":"2006-01-03T07:45:56","date_gmt":"2006-01-03T07:45:56","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/wp-pagenavi\/"},"modified":"2026-08-10T04:18:24","modified_gmt":"2026-08-10T04:18:24","slug":"wp-pagenavi","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/wp-pagenavi\/","author":259,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.0","stable_tag":"3.0.0","tested":"7.0.4","requires":"6.8","requires_php":"8.2","requires_plugins":null,"header_name":"WP-PageNavi","header_author":"Lester 'GaMerZ' Chan","header_description":"","assets_banners_color":"0e1116","last_updated":"2026-08-10 04:18:24","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/lesterchan.net\/site\/donation\/","header_plugin_uri":"https:\/\/lesterchan.net\/portfolio\/programming\/php\/","header_author_uri":"https:\/\/lesterchan.net","rating":4.7,"author_block_rating":0,"active_installs":500000,"downloads":13629950,"num_ratings":149,"support_threads":6,"support_threads_resolved":4,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.00":{"tag":"1.00","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.00":{"tag":"2.00","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.01":{"tag":"2.01","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.02":{"tag":"2.02","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.03":{"tag":"2.03","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.10":{"tag":"2.10","author":"GamerZ","date":"2007-03-20 16:57:17"},"2.11":{"tag":"2.11","author":"GamerZ","date":"2007-06-02 10:54:50"},"2.20":{"tag":"2.20","author":"GamerZ","date":"2007-09-30 08:16:45"},"2.30":{"tag":"2.30","author":"GamerZ","date":"2008-06-10 07:27:11"},"2.31":{"tag":"2.31","author":"GamerZ","date":"2008-07-20 09:18:12"},"2.40":{"tag":"2.40","author":"GamerZ","date":"2009-02-07 14:08:55"},"2.50":{"tag":"2.50","author":"GamerZ","date":"2009-08-25 19:35:31"},"2.61":{"tag":"2.61","author":"scribu","date":"2010-03-11 09:18:15"},"2.72":{"tag":"2.72","author":"scribu","date":"2010-09-12 18:09:25"},"2.73":{"tag":"2.73","author":"scribu","date":"2010-12-14 08:20:28"},"2.74":{"tag":"2.74","author":"scribu","date":"2011-09-06 15:25:51"},"2.80":{"tag":"2.80","author":"scribu","date":"2011-10-30 11:07:49"},"2.81":{"tag":"2.81","author":"scribu","date":"2011-11-17 12:14:37"},"2.82":{"tag":"2.82","author":"scribu","date":"2012-04-18 23:42:50"},"2.83":{"tag":"2.83","author":"scribu","date":"2013-03-11 12:39:00"},"2.85":{"tag":"2.85","author":"GamerZ","date":"2014-06-25 00:56:33"},"2.86":{"tag":"2.86","author":"GamerZ","date":"2014-09-05 14:16:34"},"2.87":{"tag":"2.87","author":"GamerZ","date":"2015-04-21 10:36:40"},"2.88":{"tag":"2.88","author":"GamerZ","date":"2015-08-13 02:06:13"},"2.89":{"tag":"2.89","author":"GamerZ","date":"2015-11-24 02:14:31"},"2.89.1":{"tag":"2.89.1","author":"GamerZ","date":"2015-11-24 10:05:15"},"2.90":{"tag":"2.90","author":"GamerZ","date":"2016-04-14 05:57:22"},"2.91":{"tag":"2.91","author":"GamerZ","date":"2017-03-31 02:37:04"},"2.92":{"tag":"2.92","author":"GamerZ","date":"2017-06-30 08:12:25"},"2.93":{"tag":"2.93","author":"GamerZ","date":"2018-12-19 04:49:51"},"2.93.1":{"tag":"2.93.1","author":"GamerZ","date":"2019-10-23 03:26:38"},"2.93.2":{"tag":"2.93.2","author":"GamerZ","date":"2020-03-26 02:17:13"},"2.93.3":{"tag":"2.93.3","author":"GamerZ","date":"2020-03-29 04:29:21"},"2.93.4":{"tag":"2.93.4","author":"GamerZ","date":"2021-02-22 06:14:30"},"2.94.0":{"tag":"2.94.0","author":"GamerZ","date":"2023-04-27 01:28:56"},"2.94.1":{"tag":"2.94.1","author":"GamerZ","date":"2023-08-09 02:53:59"},"2.94.2":{"tag":"2.94.2","author":"GamerZ","date":"2024-11-16 01:30:31"},"2.94.3":{"tag":"2.94.3","author":"GamerZ","date":"2024-11-24 13:55:04"},"2.94.4":{"tag":"2.94.4","author":"GamerZ","date":"2024-12-16 03:25:03"},"2.94.5":{"tag":"2.94.5","author":"GamerZ","date":"2024-12-19 01:02:17"},"2.94.6":{"tag":"2.94.6","author":"GamerZ","date":"2026-07-25 02:25:11"},"3.0.0":{"tag":"3.0.0","author":"GamerZ","date":"2026-08-10 04:18:24"}},"upgrade_notice":{"3.0.0":"<p>Requires WordPress 6.8 and PHP 8.2.<\/p>\n\n<p><strong>Settings migrate on activation, or on the first admin page load after updating.<\/strong> <code>pagenavi_options<\/code> becomes <code>wp_pagenavi_options<\/code>, and the old row is deleted once copied.<\/p>\n\n<p><strong>The settings screen is at <code>options-general.php?page=wp-pagenavi<\/code><\/strong>, still under <em>Settings -&gt; PageNavi<\/em>.<\/p>\n\n<p><strong>If you copied <code>pagenavi-css.css<\/code> into your theme, rename your copy to <code>wp-pagenavi.css<\/code>.<\/strong> The plugin&#039;s stylesheet is now <code>css\/wp-pagenavi.css<\/code> and the theme override is looked up under the new name; until you rename it your copy is ignored. Nothing inside it needs to change.<\/p>\n\n<p><strong>Nothing a theme calls has been renamed.<\/strong> <code>wp_pagenavi()<\/code>, <code>wp_pagenavi_dropdown()<\/code>, the <code>wp_pagenavi<\/code> filter and all ten <code>wp_pagenavi_class_*<\/code> filters behave as before.<\/p>\n\n<p><strong>Custom PHP reaching into the plugin&#039;s classes needs editing.<\/strong> Every class is prefixed <code>WP_<\/code>: <code>PageNavi_Options<\/code> is <code>WP_PageNavi_Options<\/code>, <code>PageNavi_Call<\/code> is <code>WP_PageNavi_Call<\/code>, <code>PageNavi_Core<\/code> is <code>WP_PageNavi_Core<\/code>. The settings screen was renamed as well as prefixed: <code>PageNavi_Admin<\/code> is now <code>WP_PageNavi_Settings<\/code>. <code>PageNavi_Options_Page<\/code> and <code>PageNavi_Core::$options<\/code> are gone \u2014 use <code>WP_PageNavi_Options::get()<\/code> and <code>WP_PageNavi_Options::get_defaults()<\/code>.<\/p>\n\n<p><strong>The bundled SCB framework is gone.<\/strong> It defined global functions and <code>scb*<\/code> classes that any plugin bundling it loaded for everything else to use. Code calling <code>html()<\/code>, <code>html_link()<\/code>, <code>set_post_field()<\/code>, <code>scb_init()<\/code> or any <code>scb_*<\/code> helper and relying on WP-PageNavi to provide them must now provide them itself. Another installed plugin may still be supplying them, in which case nothing breaks until that one stops.<\/p>"},"ratings":{"1":9,"2":0,"3":2,"4":11,"5":127},"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":977997,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3639530,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3639530,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.00","2.00","2.01","2.02","2.03","2.10","2.11","2.20","2.30","2.31","2.40","2.50","2.61","2.72","2.73","2.74","2.80","2.81","2.82","2.83","2.85","2.86","2.87","2.88","2.89","2.89.1","2.90","2.91","2.92","2.93","2.93.1","2.93.2","2.93.3","2.93.4","2.94.0","2.94.1","2.94.2","2.94.3","2.94.4","2.94.5","2.94.6","3.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3639937,"resolution":"1","location":"assets","locale":"","width":1100,"height":1675},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3639937,"resolution":"2","location":"assets","locale":"","width":1280,"height":214}},"screenshots":{"1":"Settings -&gt; WP-PageNavi, where every piece of the navigation text is set","2":"The page links under the loop, on a front page forty-two pages long"}},"plugin_section":[],"plugin_tags":[1753,3724,243,900,5826],"plugin_category":[43],"plugin_contributors":[77620],"plugin_business_model":[],"class_list":["post-174","plugin","type-plugin","status-publish","hentry","plugin_tags-navigation","plugin_tags-page-links","plugin_tags-pages","plugin_tags-pagination","plugin_tags-paging","plugin_category-customization","plugin_contributors-gamerz","plugin_committers-gamerz","plugin_committers-scribu"],"banners":{"banner":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/banner-772x250.png?rev=3639530","banner_2x":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/banner-1544x500.png?rev=3639530","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/icon.svg?rev=977997","icon":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/icon.svg?rev=977997","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/screenshot-1.png?rev=3639937","caption":"Settings -&gt; WP-PageNavi, where every piece of the navigation text is set"},{"src":"https:\/\/ps.w.org\/wp-pagenavi\/assets\/screenshot-2.png?rev=3639937","caption":"The page links under the loop, on a front page forty-two pages long"}],"raw_content":"<!--section=description-->\n<p>Want to replace the old <em>&larr; Older posts | Newer posts &rarr;<\/em> links with some page links?<\/p>\n\n<p>This plugin provides the <code>wp_pagenavi()<\/code> template tag which generates fancy pagination links.<\/p>\n\n<p>Much of the 2.x line was the work of <a href=\"https:\/\/scribu.net\">scribu<\/a>, whose write-ups on using it with secondary queries are still the ones the FAQ below points at. The plugin icon is by <a href=\"https:\/\/www.simpleicon.com\">SimpleIcon<\/a> from <a href=\"https:\/\/www.flaticon.com\">Flaticon<\/a>.<\/p>\n\n<h3>Donations<\/h3>\n\n<p>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.<\/p>\n\n<h3>Usage<\/h3>\n\n<p>In your theme, you need to find calls to next_posts_link() and previous_posts_link() and replace them.<\/p>\n\n<p>In the Twentyten theme, it looks like this:<\/p>\n\n<pre><code>&lt;div class=\"nav-previous\"&gt;&lt;?php next_posts_link( __( '&lt;span class=\"meta-nav\"&gt;&amp;larr;&lt;\/span&gt; Older posts', 'twentyten' ) ); ?&gt;&lt;\/div&gt;\n&lt;div class=\"nav-next\"&gt;&lt;?php previous_posts_link( __( 'Newer posts &lt;span class=\"meta-nav\"&gt;&amp;rarr;&lt;\/span&gt;', 'twentyten' ) ); ?&gt;&lt;\/div&gt;\n<\/code><\/pre>\n\n<p>You would replace those two lines with this:<\/p>\n\n<pre><code>&lt;?php wp_pagenavi(); ?&gt;\n<\/code><\/pre>\n\n<p>For multipart pages, you would look for code like this:<\/p>\n\n<pre><code>&lt;?php wp_link_pages( ... ); ?&gt;\n<\/code><\/pre>\n\n<p>and replace it with this:<\/p>\n\n<pre><code>&lt;?php wp_pagenavi( array( 'type' =&gt; 'multipart' ) ); ?&gt;\n<\/code><\/pre>\n\n<p>Go to <em>WP-Admin -&gt; Settings -&gt; PageNavi<\/em> for configuration.<\/p>\n\n<h3>Changing the CSS<\/h3>\n\n<p>If you need to configure the CSS style of WP-PageNavi, you can copy the <code>css\/wp-pagenavi.css<\/code> file from the plugin directory into your theme's directory as <code>wp-pagenavi.css<\/code> and make your modifications there. This way, you won't lose your changes when you update the plugin.<\/p>\n\n<p>The stylesheet sets no font and no text colour, so it inherits both from your theme, and its two border colours are CSS custom properties. A small change needs no copy of the file at all:<\/p>\n\n<pre><code>.wp-pagenavi {\n    --wp-pagenavi-border-color: #d0d0d0;\n    --wp-pagenavi-border-color-current: rebeccapurple;\n}\n<\/code><\/pre>\n\n<p>Alternatively, you can set \"Use wp-pagenavi.css\" to No on the settings page and add the styles to your theme's style.css file directly.<\/p>\n\n<h3>Changing Class Names<\/h3>\n\n<p>There are <a href=\"https:\/\/developer.wordpress.org\/plugins\/hooks\/filters\/\">filters<\/a> that can be used to change the default class names that are assigned to page navigation elements.<\/p>\n\n<h4>Filters<\/h4>\n\n<ul>\n<li><code>wp_pagenavi_class_pages<\/code><\/li>\n<li><code>wp_pagenavi_class_first<\/code><\/li>\n<li><code>wp_pagenavi_class_previouspostslink<\/code><\/li>\n<li><code>wp_pagenavi_class_extend<\/code><\/li>\n<li><code>wp_pagenavi_class_smaller<\/code><\/li>\n<li><code>wp_pagenavi_class_page<\/code><\/li>\n<li><code>wp_pagenavi_class_current<\/code><\/li>\n<li><code>wp_pagenavi_class_larger<\/code><\/li>\n<li><code>wp_pagenavi_class_nextpostslink<\/code><\/li>\n<li><code>wp_pagenavi_class_last<\/code><\/li>\n<\/ul>\n\n<h4>Filter Usage<\/h4>\n\n<pre><code>\/\/ 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\/\/ 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<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>In your theme, replace the calls to <code>next_posts_link()<\/code> and <code>previous_posts_link()<\/code> with <code>wp_pagenavi()<\/code>. Usage below shows what that looks like in a stock theme.<\/li>\n<li>Go to <code>WP-Admin -&gt; Settings -&gt; PageNavi<\/code> to change the wording and the number of page links.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"when%20i%20go%20to%20page%202%2C%20i%20see%20the%20same%20posts%20as%20on%20page%201%21\"><h3>When I go to page 2, I see the same posts as on page 1!<\/h3><\/dt>\n<dd><p>You're using <code>query_posts()<\/code> wrong. See <a href=\"https:\/\/scribu.net\/wordpress\/wp-pagenavi\/right-way-to-use-query_posts.html\">The Right Way To use query_posts()<\/a><\/p><\/dd>\n<dt id=\"does%20pagenavi%20work%20with%20secondary%20wp_query%20instances%3F\"><h3>Does PageNavi work with secondary WP_Query instances?<\/h3><\/dt>\n<dd><p>Yes; read <a href=\"https:\/\/scribu.net\/wordpress\/wp-pagenavi\/wpn-2-74.html\">this tutorial<\/a><\/p><\/dd>\n<dt id=\"how%20do%20i%20ignore%20the%20options%20page%3F\"><h3>How do I ignore the options page?<\/h3><\/dt>\n<dd><p>If you are running a multi-language plugin, you will probably want to ignore the strings in the options page.<\/p>\n\n<p>You can do that like so:<\/p>\n\n<pre><code>&lt;?php wp_pagenavi( array( 'options' =&gt; WP_PageNavi_Options::get_defaults() ) ); ?&gt;\n<\/code><\/pre>\n\n<p>Before 3.0.0 this was written as <code>PageNavi_Core::$options-&gt;get_defaults()<\/code>. That property was backed by the bundled SCB framework, which 3.0.0 removes, so the old form no longer works and must be updated.<\/p><\/dd>\n<dt id=\"can%20i%20use%20an%20svg%20arrow%20for%20the%20previous%20and%20next%20links%3F\"><h3>Can I use an SVG arrow for the previous and next links?<\/h3><\/dt>\n<dd><p>Yes. The navigation text settings accept the inline SVG elements as well as everything <code>wp_kses_post()<\/code> allows, so an icon typed into the settings screen survives the save. That allow-list is the <code>wp_pagenavi_allowed_html<\/code> filter if you need to widen or narrow it.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h3>3.0.0<\/h3>\n\n<ul>\n<li>BREAKING: WP-PageNavi now requires WordPress 6.8 and PHP 8.2. A site running anything older will not be offered the update<\/li>\n<li>BREAKING: The settings are stored in <code>wp_pagenavi_options<\/code> instead of <code>pagenavi_options<\/code>. The old row is copied over and removed automatically<\/li>\n<li>BREAKING: The settings screen has moved from <code>options-general.php?page=pagenavi<\/code> to <code>options-general.php?page=wp-pagenavi<\/code><\/li>\n<li>BREAKING: <code>pagenavi-css.css<\/code> is now <code>css\/wp-pagenavi.css<\/code>, and a copy in your theme directory must be renamed to <code>wp-pagenavi.css<\/code> to keep overriding it<\/li>\n<li>BREAKING: Every class is now prefixed. <code>PageNavi_Options<\/code>, <code>PageNavi_Call<\/code> and <code>PageNavi_Core<\/code> are <code>WP_PageNavi_Options<\/code>, <code>WP_PageNavi_Call<\/code> and <code>WP_PageNavi_Core<\/code>, and <code>PageNavi_Admin<\/code> is now <code>WP_PageNavi_Settings<\/code><\/li>\n<li>BREAKING: <code>PageNavi_Core::$options<\/code> has been removed. Use <code>WP_PageNavi_Options::get_defaults()<\/code> and <code>WP_PageNavi_Options::get()<\/code> instead. See the FAQ<\/li>\n<li>BREAKING: <code>PageNavi_Options_Page<\/code> has been removed and replaced by <code>WP_PageNavi_Settings<\/code><\/li>\n<li>BREAKING: Dropping the SCB Framework also removes the global functions and <code>scb*<\/code> classes it defined, since they were loaded into WordPress by whichever plugin bundled it. If your theme or another plugin called <code>html()<\/code>, <code>html_link()<\/code>, <code>set_post_field()<\/code>, <code>scb_init()<\/code>, <code>scb_register_table()<\/code>, <code>scb_install_table()<\/code>, <code>scb_uninstall_table()<\/code>, <code>scb_admin_notice()<\/code>, <code>scb_get_query_flags()<\/code>, <code>scb_list_fold()<\/code> or <code>scb_list_group_by()<\/code>, it must now provide them itself. Note that another installed plugin may still be supplying them, so the breakage will only appear once nothing else on the site bundles SCB<\/li>\n<li>NEW: Removed the bundled WP SCB Framework. The plugin now runs entirely on WordPress core APIs and has no dependencies<\/li>\n<li>NEW: The settings page is built with the WordPress Settings API<\/li>\n<li>NEW: Restructured into <code>includes\/<\/code> following the Plugin Handbook layout<\/li>\n<li>NEW: A <code>wp_pagenavi_capability<\/code> filter over the capability the settings screen requires<\/li>\n<li>NEW: A <code>wp_pagenavi_version<\/code> row holding the plugin and schema version markers, so a future upgrade has something to compare against<\/li>\n<li>CHANGED: The stylesheet's two colours are CSS custom properties with fallbacks rather than hardcoded hexes, and it now carries a dark colour scheme<\/li>\n<li>CHANGED: The stylesheet uses no physical CSS properties, so one file serves left-to-right and right-to-left sites alike<\/li>\n<li>FIXED: An inline SVG arrow no longer deletes the entire previous\/next link. <code>wp_kses_post()<\/code> removes an SVG rather than cleaning it, which left the link text empty, and a link with empty text is dropped altogether. The navigation text is now filtered against <code>wp_kses_post()<\/code>'s list plus the inline SVG elements, exposed as the <code>wp_pagenavi_allowed_html<\/code> filter. Reported by Cal at toolshed (#73)<\/li>\n<li>FIXED: Multisite uninstall no longer stops at the hundredth site, so a large network has its options removed everywhere. Reported by Cal at toolshed (#73)<\/li>\n<li>FIXED: The navigation aria-labels now match the strings WordPress core defines, so they are translated in every locale core supports. Reported by Cal at toolshed (#73)<\/li>\n<li>FIXED: An array submitted where a text setting belongs no longer raises a PHP 8 notice, and option keys the plugin does not define are no longer stored. Reported by Cal at toolshed (#73)<\/li>\n<li>FIXED: Page links are escaped with <code>esc_url()<\/code> instead of <code>esc_attr()<\/code><\/li>\n<li>FIXED: Page numbers derived from a <code>WP_User_Query<\/code> are cast to integers, so the current page is marked correctly<\/li>\n<li>FIXED: The stylesheet version now tracks the plugin version instead of being pinned to 2.70<\/li>\n<li>FIXED: The label on each Yes\/No setting pointed at an element that did not exist, so clicking it did nothing<\/li>\n<li>NOTE: No hook and no template tag is renamed. The ten <code>wp_pagenavi_class_*<\/code> filters, the <code>wp_pagenavi<\/code> filter, <code>wp_pagenavi()<\/code> and <code>wp_pagenavi_dropdown()<\/code> all keep the names they shipped with<\/li>\n<\/ul>","raw_excerpt":"Adds a more advanced paging navigation interface.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=174"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/gamerz"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=174"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=174"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=174"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=174"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}