Download the PHP package marshallu/mu-seo without Composer

On this page you can find all versions of the php package marshallu/mu-seo. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package mu-seo

Herd SEO

A lean SEO plugin for Marshall University's WordPress sites.


Features


Installation

Manual Installation

Upload the plugin directory to wp-content/plugins/ and activate it from the WordPress admin.

Then go to Plugins in the WordPress admin and activate Herd SEO.

Composer Installation

Composer will install the plugin to wp-content/plugins/herd-seo/. Activate it from the WordPress admin or via WP-CLI:

Composer dependencies (PHPCS, WPCS, ACF stubs) are dev-only and not required in production.


ACF Field Reference

All per-post fields appear in the SEO meta box on every public post type edit screen. The box has two tabs.

SEO Tab

Field ACF Name Type Notes
SEO Title mu_seo_title Text Overrides the <title> tag and og:title. Falls back to the post title.
Meta Description mu_seo_description Textarea Overrides the meta description and og:description. Falls back to the post excerpt.
Canonical URL mu_seo_canonical URL Overrides the canonical link and og:url. Falls back to the permalink.
Robots mu_seo_robots Checkbox Check noindex, nofollow, or both to output a robots meta tag. Leave blank for default crawl behavior.

Social / Open Graph Tab

Field ACF Name Type Notes
Social Image mu_seo_og_image Image (returns ID) Overrides the image used in og:image and Twitter card. See fallback chain below.
OG Type mu_seo_og_type Select article or website. When left blank, defaults to article for posts and website for all other post types. Can be overridden per post type via the mu_seo_og_type filter.
Twitter Card Style mu_seo_twitter_card Select summary_large_image (default) or summary.

Options Page

Located at Settings > SEO Settings.

Field ACF Name Type Notes
Twitter / X Handle mu_seo_twitter_handle Text Include the @ symbol, e.g. @MarshallU. Populates twitter:site.
Default Social Image mu_seo_default_og_image Image (returns ID) Fallback image when a post has no featured image or hero image.

Social Image Fallback Chain

When resolving the image for og:image, twitter:image, and JSON-LD schema, the plugin walks this chain and uses the first match:

  1. Post-level ACF overridemu_seo_og_image field on the post
  2. Featured imageget_post_thumbnail_id()
  3. Hero block image — parsed from the first acf/hero block in post content (see below)
  4. mu_seo_og_image_id filter — lets themes/plugins provide an image for custom post types
  5. Site defaultmu_seo_default_og_image from the options page

If no image is found, the image tags are omitted entirely.

Hero Block Image Extraction

The plugin parses the acf/hero block's saved attrs.data to find the image ID. The hero_type field determines which key is read:

hero_type Image source key
static hero_image_image
random hero_images_0_image (first row)
video / videourl video_video_thumbnail
none / color No image

Head Output

The following tags are output in wp_head on singular pages only. Nothing is output on archives, the home page, or 404s.

WordPress core's rel_canonical hook is removed — the canonical link is managed entirely by Herd SEO.

Meta Tags (MU_SEO_Head, priority 2)

Open Graph and Twitter Card (MU_SEO_Social, priority 1)

JSON-LD Schema (MU_SEO_Schema, priority 2)

Posts receive Article schema:

Pages receive WebPage schema:


Developer Hooks

mu_seo_post_types

Filters the list of post types that receive the SEO and Social field group. The default is all post types registered with public => true. Use this to add post types with a UI but no public archive, or to remove post types that should not have SEO fields.

Parameters:

Parameter Type Description
$post_types string[] Array of post type slugs.

Examples:

Add a non-public CPT:

Remove a post type:


mu_seo_og_image_id

Filters the resolved social image attachment ID after the built-in fallback chain (ACF override → featured image → hero block) and before the site-wide default. Use this to provide a post-type-specific image source for CPTs that don't use featured images or the hero block.

The filter receives the ID resolved so far — return it unchanged to pass through, or return a different attachment ID to override.

Parameters:

Parameter Type Description
$image_id int Attachment ID resolved so far, or 0 if nothing found yet.
$post_id int The current post ID.

Example — use a custom ACF field as the social image for a profiles CPT:


mu_seo_og_type

Filters the default og:type for the current post. Runs only when the per-post ACF field is blank. Use this to assign the correct OG type to custom post types without editing Herd SEO directly.

Valid OG types include article, website, and profile. See ogp.me for the full list.

Parameters:

Parameter Type Description
$type string The default type. article for posts, website for everything else.
$post_id int The current post ID.

Example — set profile for a people/profiles CPT:


mu_seo_schema

Filters the JSON-LD schema array before it is encoded and output. Runs on every singular page. For unhandled post types (not post or page) the initial $schema value is an empty array, giving you a clean slate to build from.

Parameters:

Parameter Type Description
$schema array The schema array. Empty for unhandled post types.
$post_id int The current post ID.
$post_type string The current post type slug.

Return array — return an empty array to suppress output entirely.

Examples:

Add schema for a custom post type:

Append a property to the default schema:

Suppress schema on a specific page:


Yoast SEO Migration

Herd SEO includes a migration tool for moving Yoast SEO post meta and global options into Herd SEO's ACF fields. Existing Herd SEO values are never overwritten.

What gets migrated

Per-post meta:

Yoast meta key Herd SEO field
_yoast_wpseo_title mu_seo_title
_yoast_wpseo_metadesc mu_seo_description
_yoast_wpseo_canonical mu_seo_canonical
_yoast_wpseo_meta-robots-noindex / nofollow mu_seo_robots
_yoast_wpseo_opengraph-image-id mu_seo_og_image

Values containing Yoast template variables (%%title%%, etc.) are skipped. If a URL-only OG image is stored, the tool attempts to resolve it to a WordPress attachment ID via attachment_url_to_postid().

Global options (from wpseo_social):

Yoast option Herd SEO field
twitter_site mu_seo_twitter_handle (options page)
og_default_image_id mu_seo_default_og_image (options page)

WP-CLI

The migration command requires a site ID, making it safe for multisite use.

Arguments:

Argument Description
<site-id> Required. Numeric ID of the site to migrate.

Options:

Option Description
--dry-run Preview changes without writing anything.
--post-type=<type> Comma-separated list of post types to migrate. Defaults to all public post types.
--per-page=<n> Batch size for post queries. Default: 100.
--verbose Print a line for every field action (migrated, conflict, skipped).

Examples:

Verbose output example:

Admin UI

The migration tool is also available at Tools > MU SEO Migration. It runs the same migration logic without any options — all public post types, no dry run. Results are shown on the same page after completion.


Development

All code follows WordPress Coding Standards. Functions, hooks, and globals are prefixed mu_seo_.


File Structure


All versions of mu-seo with dependencies

PHP Build Version
Package Version
Requires php Version >=8.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package marshallu/mu-seo contains the following files

Loading the files please wait ...