{"id":49518,"date":"2016-07-06T01:33:39","date_gmt":"2016-07-06T01:33:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/simplistic-page-navi\/"},"modified":"2025-12-04T06:39:33","modified_gmt":"2025-12-04T06:39:33","slug":"simplistic-page-navi","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/simplistic-page-navi\/","author":11833032,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"6.0","stable_tag":"trunk","tested":"6.9.4","requires":"4.5","requires_php":"7.0","requires_plugins":null,"header_name":"Simplistic page navi","header_author":"Hironori Masuda","header_description":"","assets_banners_color":"ebeeef","last_updated":"2025-12-04 06:39:33","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/strix.main.jp\/?diys=wp-pager-remake","header_author_uri":"https:\/\/strix.main.jp\/?page_id=16227","rating":5,"author_block_rating":0,"active_installs":200,"downloads":7591,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":[],"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1449672,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.jpg":{"filename":"banner-772x250.jpg","revision":1449672,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":{"smplstc-pn\/pagenum-link":{"name":"smplstc-pn\/pagenum-link","title":"Simplistic page-navi Block"}},"tagged_versions":[],"block_files":[],"assets_screenshots":{"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3410483,"resolution":"3","location":"plugin"},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3410483,"resolution":"2","location":"plugin"},"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3410483,"resolution":"1","location":"plugin"}},"screenshots":{"1":"page list styling samples.","2":"reverse list and minimum list.","3":"Option page english."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1753,13194,243,900,5826],"plugin_category":[43],"plugin_contributors":[92534],"plugin_business_model":[],"class_list":["post-49518","plugin","type-plugin","status-publish","hentry","plugin_tags-navigation","plugin_tags-pager","plugin_tags-pages","plugin_tags-pagination","plugin_tags-paging","plugin_category-customization","plugin_contributors-strix-bubol5","plugin_committers-strix-bubol5"],"banners":{"banner":"https:\/\/ps.w.org\/simplistic-page-navi\/assets\/banner-772x250.jpg?rev=1449672","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/simplistic-page-navi\/assets\/icon-128x128.png?rev=1449672","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/simplistic-page-navi\/trunk\/screenshot-1.jpg?rev=3410483","caption":"page list styling samples."},{"src":"https:\/\/ps.w.org\/simplistic-page-navi\/trunk\/screenshot-2.jpg?rev=3410483","caption":"reverse list and minimum list."},{"src":"https:\/\/ps.w.org\/simplistic-page-navi\/trunk\/screenshot-3.jpg?rev=3410483","caption":"Option page english."}],"raw_content":"<!--section=description-->\n<p>This plugin's page-list has an input box that allows you to directly specify the page number you wish to display.<\/p>\n\n<p>This plugin has a setting to display page-list in reverse order<\/p>\n\n<p>You can specify style-sheet and some options at each page.<\/p>\n\n<p>This plugin has several sample stylesheets by default.<\/p>\n\n<p>By passing an array of options to the function as arguments on each page, it is possible to change the appearance of multiple linked listings within the same page, except for the style.<\/p>\n\n<p>It is common to have two linked lists, one at the top of the page and one at the bottom. In such cases, when the function is called a second time, the list created the first time is reused from memory to avoid having the same process performed twice.<\/p>\n\n<p>This plugin has a custom block for Gutenberg Block Editor.<\/p>\n\n<p>Even if you don't know much html or php, this plugin has the ability to insert linked list at the beginning and end of an html element using Javascript by specifying the ID of the html element where you want to display it.\nFurthermore, if you have no idea about the ID of html elements, etc., go into the plugin's options settings page and try typing \"search\" in the \"Page-lists outputted by javascript\" field. When the page is displayed, the plugin uses javascript to find the html elements of the main content, and if it is lucky enough to find it, it will use Javascript to insert a page-lists at the beginning and end of that HTML element. Perhaps it might work.<\/p>\n\n<h3>Arbitrary section 1<\/h3>\n\n<p>Explanation of errors detected by the plugin \"Plugin Check (PCP)\"\n*file\uff1a \\simplistic-page-navi\\simplistic_pagenavi.php<\/p>\n\n1:881\u884c     ERROR   WordPress.Security.EscapeOutput.OutputNotEscaped    All output should be run through an escaping function (see the Security sections in the WordPress Developer Handbooks), found '$ret'.\n\n<p>\uff1eThis variable $ret contains the assembled pagination and is pointed out as not being escaped in the final output. The option values \u200b\u200bset by the user are sanitized when saved and are also sanitized individually when actually used. The tags that are incorporated into the pagination are only pre-defined ones, and I understand that there is no need to escape the final assembly..<\/p>\n\n2:410\u884c     WARNING     WordPress.Security.NonceVerification.Recommended    Processing form data without nonce verification.\n\n<p>\uff1eThis is a function that gets the parameters (query) of the accessed URL. Because it only gets values \u200b\u200bthat exist in public_query_vars set by WordPress, I think that nonce verification is not necessary.<\/p>\n\n3:860\u884c     ERROR   WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound   Global variables defined by a theme\/plugin should start with the theme\/plugin prefix. Found: \"$simplistic_page_navi_start\".\n\n4:888\u884c     ERROR   WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedFunctionFound   Functions declared in the global namespace by a theme\/plugin should start with the theme\/plugin prefix. Found: \"direct_splcpn_style\".\n\n<p>\uff1eThe plugin is encapsulated in a class, but these variables and functions are outside of that class. I could add a prefix as instructed, but I've left it as it is because it might already be in use.\u3002<\/p>\n\n5:The plugin is encapsulated by a class, and for most of the variables in the files included by the methods in that class, an error occurs saying \"Because it is a global variable, you must add a prefix.\"\u3002\n\n<p>\uff1eHowever, since these variables are used within methods inside a class, they cannot possibly be global. I believe this is a false positive that undermines reliability. It's annoying, so I'm handling it with \u201c\/\/ phpcs:ignoreFile\u201d.\u3002<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload \"simplistic-page-navi\" folder which include \"simplistic_pagenavi.php\" to the \"\/wp-content\/plugins\/\" directory<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress<\/li>\n<li>Go to \"WP-Admin -&gt; Settings -&gt; Simplistic Page-navi Option\" to configure the plugin options<\/li>\n<li>Add a template tag \"splcpn_echopager\" to the place where you would like to display page-navigation in your theme. Or, if you don't want to touch HTML or PHP at all, try into a word \"search\" in the \"Page-lists outputted by javascript\" option box. If this plugin can successfully find the main content, maybe it will work.<\/li>\n<\/ol>\n\n<p>Usage is as follows.<\/p>\n\n<pre><code>&lt;?php\n    if ( function_exists( 'splcpn_echopager' ) ) {\n        splcpn_echopager( 1 );\n    }\n?&gt;\n<\/code><\/pre>\n\n<p>In this case, HTML will be generated as follows when you set 1 as an argument.<\/p>\n\n<pre><code>&lt;nav id=\"toppagelink\"&gt;&lt;div class=\"pagenavilist\"&gt;\n<\/code><\/pre>\n\n<p>If you set 0 or if you omit it ( optional in the case because 0 is default value) is as follows.<\/p>\n\n<pre><code>&lt;nav id=\"bottompagelink\"&gt;&lt;div class=\"pagenavilist\"&gt;\n<\/code><\/pre>\n\n<p>If you want to display page-lists twice in the same page, you can setting of position in detail for each.<\/p>\n\n<p>I think it is common to display two pagenations  at the top and bottom of a page. In that case, the second time the function is called, the first creation is stored in memory and reused.<\/p>\n\n<p>Other parameters (like options, but those related to style sheets are useless) can also be specified as the second argument in an array, as shown bellow.<\/p>\n\n<p>By specifying options in the function arguments, you can have different displays even within the same page. (e.g., a full list at the top and a minimalist list at the bottom)<\/p>\n\n<p>The following is a list of all the items that can be specified, but in reality, only the necessary items need to be specified in an array.<\/p>\n\n<p>When specifying the second argument, the first argument must be specified even if the first argument is the default value of 0 (otherwise an error will occur).<\/p>\n\n<p>The last parameter \"max_page_num\" is not an option value. For example, when you get a list of the specific category post using the WP_Query at a \"static\" page, there is a case where \"$wp_query-&gt;max_num_pages\" is no value. In that case, pagenation will be not displayed. You should specified in this parameter by getting the total number of pages in some way.<\/p>\n\n<pre><code>&lt;?php\n    if ( function_exists( 'splcpn_echopager' ) ) {\n        $args = array(\n            'reverse' =&gt; '0', \/\/ 0:normal(from left) 1:reverse(from right)\n            'above' =&gt; '7', \/\/ Show jump-box when the total number of pages is more than this number, default:7\n            'minimum_unit' =&gt; '1', \/\/ 0:minimum-list 1:full-list\n            'adjacent_num'=&gt; '3',\/\/ Number of pages that adjacent to current page to be displayed, 1-5\n            'larger_page'=&gt; '3',\/\/ Number of pages that multiples of 10 to be displayed, 0-5\n            'top_label' =&gt; 'Top',\n            'last_label' =&gt; 'Last',\n            'connection_str'=&gt;'~',\/\/ Connection string, empty is disable.\n            'div_id'=&gt;'pagenavilist',\/\/ ID name of parent div tag.\n            'font_size'=&gt;'0',\/\/specify font size. set 0 to disable. -10 : 0.5em ~ 10 : 1.5em, at intervals of 0.05em.\n            'top_text_align'=&gt;'0',\/\/ Text-align of id=\"toppagelink\" of \"nav\" tag. 0 : disable, 1:left, 2: right, 3:center.\n            'top_margin'=&gt;'',\/\/ Margin of  id=\"toppagelink\" of \"nav\" tag. Empty is disable, top:right:bottom:left. This value can have from one to four values same as the format of css.\n            'bottom_text_align'=&gt;'0',\/\/ Text-align of  id selector \"bottompagelink\" of \"nav\" tag. 0 : disable, 1:left, 2: right, 3:center.\n            'bottom_margin'=&gt;'',\/\/ Margin of  id selector \"bottompagelink\" of \"nav\" tag. Same as \"top_margin\". \n            'distant_num'=&gt;'3',\/\/ Number of pages that multiples of 100 to be displayed when the wide distance from the edge label.\n            'max_page_num'=&gt;$wp_query-&gt;max_num_pages,\/\/ The total number of pages. This value is required when value of $wp_query-&gt;max_num_pages is empty.\n        );\n        splcpn_echopager( 0, $args );\n    }\n?&gt;\n<\/code><\/pre>\n\n<p>In addition, when you want to change the style by the page.<\/p>\n\n<p>You set the \"Load style sheet\" of the option to 0, and calling the function of \"direct_splcpn_style\" before wp_head () in header.php.<\/p>\n\n<p>You can specify the style sheet to be loaded for each page.<\/p>\n\n<p>For example, if in the following manner, you can randomly change the style at load page.<\/p>\n\n<pre><code>&lt;?php\n    $splcpn_num = rand( 1, 6 );\n    direct_splcpn_style( $splcpn_num );\n    wp_head();\n?&gt;\n<\/code><\/pre>\n\n<!--section=faq-->\n<dl>\n<dt id='what%20web%20browsers%20are%20supported%3F'><h3>What web browsers are supported?<\/h3><\/dt>\n<dd><p>The supporting Web browser has to be HTML5 and CSS3.<\/p><\/dd>\n<dt id='what%20is%20the%20supporting%20language%3F'><h3>What is the supporting language?<\/h3><\/dt>\n<dd><p>Japanese and English supports it.\nBut I am not good at english. English part needs improvement.<\/p><\/dd>\n<dt id='after%20having%20deleted%20the%20plugin%2C%20how%20does%20the%20stored%20optional%20value%20turn%20out%3F'><h3>After having deleted the plugin, how does the stored optional value turn out?<\/h3><\/dt>\n<dd><p>The stored optional value is deleted if you delete plugin in WP-Admin-&gt;plugins menu.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>6.0 - _December 3,2025<\/h4>\n\n<ul>\n<li>Simplifying the process of getting plugin option values.<\/li>\n<li>Updated custom block for Gutenberg Block Editor to apiVersion3.<\/li>\n<li>Fixed errors detected by the plugin \"Plugin Check(PCP)\".<\/li>\n<\/ul>\n\n<h4>5.1 - November 12,2022<\/h4>\n\n<ul>\n<li>Bug fixed : Fixed center not being applied to parent tag text-align setting.<\/li>\n<\/ul>\n\n<h4>5.0 - November 7,2022<\/h4>\n\n<ul>\n<li>function of generate page-list has been completely rewritten to speed up the process.<\/li>\n<li>Updated custom block for Gutenberg Block Editor to apiVersion2.<\/li>\n<li>Supported php8.1.<\/li>\n<\/ul>\n\n<h4>4.0 - September 8,2021<\/h4>\n\n<ul>\n<li>Equipped block for Gutenberg block editor.<\/li>\n<li>Added the ability to insert HTML elements of page-list by Javascript without writing function names in the template file.<\/li>\n<li>Bug fixed : enabled option : Maximum number of hundreds place pages to display list<\/li>\n<li>Bug fixed : PHP8 Warning:  Array to string conversion formatting. php at function get_url_parameter.<\/li>\n<li>Improved function of generate page list to speed up.<\/li>\n<\/ul>\n\n<h4>3.0 - December 11,2019<\/h4>\n\n<ul>\n<li>Changed the method of deleting the option value saved in the database to the method of using the uninstall.php file when the plug-in is deleted from WP-Admin-&gt;plugins menu.<\/li>\n<li>Improved function of generate page list to speed up.<\/li>\n<\/ul>\n\n<h4>August 23,2017<\/h4>\n\n<ul>\n<li>Changed : change default value of madia query max-width for narrow screen.<\/li>\n<\/ul>\n\n<h4>2.1 - August 16,2016<\/h4>\n\n<ul>\n<li>Fixed : Minor update for function of make_pagenumlink.<\/li>\n<\/ul>\n\n<h4>2.0 - August 12,2016<\/h4>\n\n<ul>\n<li>Improved function of generate number-link to speed up.<\/li>\n<li>Bug fixed : display 1 page in minimum list.<\/li>\n<li>Test for Wordpress 4.6.<\/li>\n<\/ul>\n\n<h4>1.0 - July 1,2016<\/h4>\n\n<ul>\n<li>Simplistic page navi release.<\/li>\n<\/ul>","raw_excerpt":"This plugin displays a linked list by page number. It is simple but has several features.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/49518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=49518"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/strix-bubol5"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=49518"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=49518"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=49518"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=49518"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=49518"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=49518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}