Page Index

Plugin Description

Shortcode which displays a simple tile based page index showing the child pages.

Description

Shortcode which displays a simple tile based page index showing the child pages of the loaded page or of the supplied pageid or slug. This plugin is multisite compatible.

To use simply place the [page-index] shortcode on a page or in a post. Tiled page index based on child pages of the page the shortcode is used on.

If a different page index is required, or the shortcode is used in a post use one of the following parameters:

  • pageid
  • slug

e.g. [page-index pageid='32'] or [page-index slug='mythology/celtic-fairy-tales']

If both parameters are supplied, then pageid will take precedence and slug will be ignored.

Integrated with Flags plugin to display flag in page index; add custom Flag custom field to page.

Integrated with Icons plugin to display icon in page index; add custom Icon custom field to page.

This plugin is multisite compatible; each site will need settings to be configured in the admin dashboard.

Installation

  • Download the latest release of the plugin from GitHub.
  • Upload the entire zip file using the Plugins upload function in your ClassicPress admin panel.
  • Activate the plugin.
  • Configure relevant settings via the configuration page in the admin control panel (azurecurve menu).

Frequently Asked Questions

Can I translate this plugin?

Yes, the .pot file is in the plugin’s assets/languages folder; if you do translate this plugin, please send the .po and .mo files to [email protected] for inclusion in the next version (full credit will be given).

Is this plugin compatible with both WordPress and ClassicPress?

This plugin is developed for ClassicPress, but will likely work on WordPress.

Changelog

  • Rebuilt to match the current azurecurve plugin architecture (namespaced code, settings/menu split across includes files, tabbed azrcrv-ui-tabs admin UI matching Shortcodes in Comments/Shortcodes in Widgets).
  • Removed the jQuery/jQuery UI dependency from the settings screen; tabs are now plain CSS/vanilla JS. This also removes four broken enqueues of jquery-ui.css/jquery-ui.structure.css/jquery-ui.js/jquery.js files that did not actually exist in the plugin and were 404ing on every visit to the settings screen.
  • Fixed a bug where the Timelines-integration “has a timeline entry” check used malformed SQL (a %s placeholder wrapped in its own literal quotes, on top of $wpdb->prepare()’s own quoting), so the check never actually matched and the timeline signifier never appeared.
  • Fixed a fatal error (PHP 8+) when the shortcode’s slug attribute didn’t match any page – now falls back to the current page instead of reading ->ID off a null result.
  • Fixed the Icons-integration call passing an unkeyed array (azrcrv_i_icon( array( $icon ) )) instead of the documented, keyed form (azrcrv_i_icon( array( 'id' => $icon ) )), matching the Flags-integration call’s convention.
  • Fixed unescaped output (page URL, slug and title) in the generated index links.
  • Fixed a PHP notice on admin.php requests without a ‘page’ query var (missing isset() check).
  • Fixed an inefficient plugin_action_links hook so it no longer runs for every plugin on the Plugins list page.
  • Fixed a PHP warning on a never-configured settings page (defaults weren’t actually applied on read).
  • Replaced the hard-coded Flags/Icons/Timelines links with a standard, auto-generated Other Plugins tab.
  • Replaced the plugin’s shared azurecurve cross-plugin menu population logic (previously re-run unconditionally on every admin_init, always writing to the database) with the activation/upgrade-hook based logic shared with the rest of the azurecurve plugin family, which only writes when something actually changed.
  • Text domain changed from page-index to azrcrv-pi, and the languages folder moved from /languages to /assets/languages, matching every other azurecurve plugin. Existing translations will need to be rebuilt against the new domain/path.
  • Requires PHP raised from 7.4 to 8.2, matching the rest of the azurecurve plugin family.
  • All settings, the [page-index]/[PAGE-INDEX] shortcode and its attributes, and the azrcrv-pi-color/azrcrv-pi-background/Flag/Icon custom field names are unchanged, so existing content keeps working with no migration step.
  • Security fix: the color/background/width/height/line-height/margin/padding/text-align/font-weight values (from the Defaults tab settings, from the shortcode’s own attributes, and from the per-page azrcrv-pi-color/azrcrv-pi-background custom fields) were only escaped for safe HTML-attribute placement, not validated as CSS – a value such as background=”#007fff; border: 3px solid red” passed straight through and injected an extra CSS declaration. Every value is now validated against the specific shape that CSS property can legitimately take (see includes/functions-css-sanitize.php); anything that doesn’t match is discarded outright, on save AND again defensively at output, so a value already stored before this fix self-heals without needing to be re-saved.
  • Added a new Border default (and matching border shortcode attribute), e.g. 3px solid red – validated as exactly width style color, each part checked independently.
  • Added an Instructions tab to the settings screen – covers basic use, styling/shortcode attributes, per-page color overrides, and Flags/Icons/Timelines integration.
  • Update readme.md and remove readme.txt (not required for ClassicPress).
  • Update azurecurve menu.
  • Update plugin header for compatibility with ClasssicPress v2.
  • Update plugin header and readme for compatibility with ClassicPress Directory v2.
  • Update Update Manager to version 2.5.0.
  • Update readme file for compatibility with ClassicPress Directory.
  • Update readme files.
  • Update language template.
  • Fix bug with azurecurve menu.
  • Update azurecurve menu.
  • Update readme files.
  • Refactor settings page to be accessible using tabs with aria.
  • Update translations to escape strings.
  • Update azurecurve menu and logo.
  • Fix bug with available icons not listing when Icons integration enabled.
  • Fix bug with timeline integration.
  • Fix bug with timeline signifier not working correctly when integrated with Icons, but no icon selected.
  • Integrate with Flags
  • Integrate with Icons for icon in page index and timeline signifier.
  • Add tabs to settings page.
  • Fix bug with plugin active check.
  • Update azurecurve plugin menu.
  • Fix plugin action link to use admin_url() function.
  • Rewrite option handling so defaults not stored in database on plugin initialisation.
  • Update azurecurve plugin menu.
  • Amend to only load css when shortcode on page.
  • Fix bug with incorrect plugin slug declaration for plugin icon and banner.
  • Add integration with Timelines from azurecurve.
  • Add plugin icon and banner.
  • Update generation of page URL to use get_permalink.
  • Update CSS to use flexbox instead of line height to handle wrapping within page index tiles.
  • Fix bug with pageid parameter not working.
  • Fix bug with setting of default options.
  • Fix bug with plugin menu.
  • Update plugin menu css.
  • Rewrite default option creation function to resolve several bugs.
  • Upgrade azurecurve plugin to store available plugins in options.
  • Update Update Manager class to v2.0.0.
  • Update action link.
  • Update azurecurve menu icon with compressed image.
  • Fix bug with incorrect language load text domain.
  • Add integration with Update Manager for automatic updates.
  • Fix issue with display of azurecurve menu.
  • Change settings page heading.
  • Add load_plugin_textdomain to handle translations.
  • Add protocol check when constructing page index.
  • Update azurecurve menu for easier maintenance.
  • Move require of azurecurve menu below security check.
  • Initial release for ClassicPress forked from azurecurve Page Index WordPress Plugin.

Other Notes

About azurecurve

azurecurve was one of the first plugin developers to start developing for ClassicPress; all plugins are available from azurecurve Development and are integrated with the Update Manager plugin for fully integrated, no hassle, updates.

The plugins available from azurecurve are: