bonnier/wp-bonnier-sitemap

A Sitemap plugin for the Willow platform

Installs: 2 662

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 10

Forks: 0

Open Issues: 1

Type:wordpress-plugin


README

A plugin for handling sitemaps in WordPress

This plugin will monitor all public WP_Post types and

Filters

This plugin makes some filters available to developers of WordPress sites, in order to customize the validation and handling of content to be processed by this plugin.

WpBonnierSitemap::FILTER_ALLOWED_POST_TYPES = 'sitemap_allowed_post_types'

This filter will allow you to remove or add post types that are allowed by the sitemap plugin, and therefore which post types will be listened for on changes.

add_filter('sitemap_allowed_post_types', function(array $postTypes) {
    // Don't handle sitemaps for the page post type.
    return array_filter($postTypes, function(string $postType) {
        return $postType !== 'page';
    });
}, 10);

WpBonnierSitemap::FILTER_POST_ALLOWED_IN_SITEMAP = 'post_allowed_in_sitemap'

This filter will allow you to hijack the validation for whether a WP_Post is supposed to be in the sitemap.

Default: true

add_filter('post_allowed_in_sitemap', function (bool $allowed, \WP_Post $post) {
    if ($post->post_type !== 'page') {
        $allowed = false;
    }
    return $allowed;
}, 10, 2);

WpBonnierSitemap::FILTER_POST_TAG_MINIMUM_COUNT = 'post_tag_minimum_count'

This filter will allow you to define the minimum number of posts a tag needs to be attached to, for it to be included in a sitemap.

Default: 5

add_filter('post_tag_minimum_count', function (int $count) {
    // For SEO purposes, our sitemap cannot have less than 10 posts for tag pages.
    return 10;
}, 10);

WpBonnierSitemap::FILTER_USER_MINIMUM_COUNT = 'user_minimum_count'

This filter will allow you to define the minimum number of posts a user needs to be attached to, for it to be included in a sitemap.

Default: 5

add_filter('user_minimum_count', function (int $count) {
    // For SEO purposes, our sitemap cannot have less than 10 posts for user pages.
    return 10;
}, 10);

WpBonnierSitemap::FILTER_POST_PERMALINK = 'sitemap_post_permalink'

This filter will allow you to alter the generated permalink for a post being saved.

add_filter('sitemap_post_permalink', function (string $permalink, \WP_Post $post) {
    return $permalink;
}, 10, 2);

WpBonnierSitemap::FILTER_CATEGORY_PERMALINK = 'sitemap_category_permalink'

This filter will allow you to alter the generated permalink for a category being saved.

add_filter('sitemap_category_permalink', function (string $permalink, \WP_Term $category) {
    return $permalink;
}, 10, 2);

WpBonnierSitemap::FILTER_TAG_PERMALINK = 'sitemap_tag_permalink'

This filter will allow you to alter the generated permalink for a post_tag being saved.

add_filter('sitemap_tag_permalink', function (string $permalink, \WP_Term $tag) {
    return $permalink;
}, 10, 2);

WpBonnierSitemap::FILTER_TAG_ALLOWED_IN_SITEMAP = 'tag_allowed_in_sitemap'

This filter will allow you to hijack the validation for whether a WP_Term is supposed to be in the sitemap.

Default: true

add_filter('tag_allowed_in_sitemap', function (bool $allowed, \WP_Term $tag) {
    if ($tag->taxonomy !== 'post_tag') {
            $allowed = false;
        }
        return $allowed;
}, 10, 2);

WpBonnierSitemap::FILTER_ALLOW_USER_IN_SITEMAP = 'allow_user_in_sitemap'

This filter will allow you to apply your own rules for registering the user in the sitemap table.

add_filter('allow_user_in_sitemap', function (bool $allowInSitemap, int $userID, \WP_User $user) {
    return $allowInSitemap;
}, 10, 3);