PHPackages                             mindkomm/theme-lib-onepager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mindkomm/theme-lib-onepager

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mindkomm/theme-lib-onepager
===========================

Onepager functionality for WordPress themes

v1.1.0(1y ago)0165MITPHPPHP ^7.0 || ^8.0

Since Feb 21Pushed 1y ago3 watchersCompare

[ Source](https://github.com/mindkomm/theme-lib-onepager)[ Packagist](https://packagist.org/packages/mindkomm/theme-lib-onepager)[ RSS](/packages/mindkomm-theme-lib-onepager/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (2)Dependencies (1)Versions (5)Used By (0)

Onepager
========

[](#onepager)

Onepager functionality for WordPress themes.

Overwrites URL for child pages to be anchor links. Replaces last segment of a URL with # prefix and removes trailing slash. For example `/hotel/host/` &gt; `/hotel/#host`.

You can use this when you append child pages to the parent page in the sense of a onepager or when you want to list all pages in a single onepager.

Installation
------------

[](#installation)

You can install the package via Composer:

```
composer require mindkomm/theme-lib-onepager
```

Usage
-----

[](#usage)

**functions.php**

```
$onepager = new Theme\Onepager\Onepager();
$onepager->init();
```

The Onepager constructor takes two parameters:

**$type**

Defines the type of the onepager that you want to use. Default `multi`.

- `multi` – Hierarchical theme structure where subpages are appended to the parent site.
- `simple` – Non-hierarchical structure where all pages are dislayed after each other as a onepager.

**$post\_types**

The post types to apply the Onepager functionality to. Default `[ 'page' ]`.

Ignoring pages
--------------

[](#ignoring-pages)

In certain setups, you might have subpages that don’t belong to a onepager. For example, in WooCommerce, the checkout page is a subpage of the shop page. Filtering the link for the checkout page would break the functionality of the checkout page.

The `theme/onepager/apply_link_filter` filter allows you to disable filtering for certain links. Here’s an example that’s already included in the library:

```
/**
 * Do not apply Onepager link filtering for WooCommerce pages.
 *
 * @param bool   $bailout Whether to bail out early.
 * @param string $link    The link to filter.
 * @param string $post_id The ID of the post to filter the link for.
 *
 * @return bool
 */
add_filter( 'theme/onepager/apply_link_filter', function( $bailout, $link, $post_id ) {
    if ( wc_get_page_id( 'shop' ) === $post_id || wc_get_page_id( 'checkout' ) === $post_id ) {
        return true;
    }

    return $bailout;
}, 10, 3 );
```

Sitemaps
--------

[](#sitemaps)

When you have Yoast SEO installed, this library will make sure that child pages are ignored when the page sitemap is generated. This will not consider the filter to ignore filtering of certain pages. It will only include pages with `post_parent` set to `0`. At the current state, this works well for us. In the future, we might add more control for this.

Caching
-------

[](#caching)

Usually, caching plugins flush the cache for a page when a page is edited and saved. However, when a child page is saved that belongs to a onepager, the parent page defines the cache. This library will handle purging of parent pages for the following plugins:

- WP Rocket
- WP Fastest Cache
- W3 Total Cache

Support
-------

[](#support)

This is a library that we use at MIND to develop WordPress themes. You’re free to use it, but currently, we don’t provide any support.

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 86.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~816 days

Total

4

Last Release

555d ago

PHP version history (2 changes)1.0.0PHP &gt;=7.0.0

v1.0.2PHP ^7.0 || ^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2084481?v=4)[Lukas Gächter](/maintainers/gchtr)[@gchtr](https://github.com/gchtr)

---

Top Contributors

[![gchtr](https://avatars.githubusercontent.com/u/2084481?v=4)](https://github.com/gchtr "gchtr (13 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (2 commits)")

### Embed Badge

![Health badge](/badges/mindkomm-theme-lib-onepager/health.svg)

```
[![Health](https://phpackages.com/badges/mindkomm-theme-lib-onepager/health.svg)](https://phpackages.com/packages/mindkomm-theme-lib-onepager)
```

###  Alternatives

[s-patompong/laravel-routes-html

View your Laravel routes on the browser.

264.6k](/packages/s-patompong-laravel-routes-html)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
