pedroborges / meta-tags
HTML meta tags generator for PHP.
Installs: 27 757
Dependents: 1
Suggesters: 0
Security: 0
Stars: 44
Watchers: 6
Forks: 14
Open Issues: 2
Requires (Dev)
- phpunit/phpunit: ^7.0.0
This package is auto-updated.
Last update: 2025-02-22 04:18:48 UTC
README
HTML meta tags generator for PHP. Supports Open Graph, Twitter Cards, and JSON Linked Data out of the box.
Installation
composer require pedroborges/meta-tags
Basic Usage
Create a new MetaTags
instance then you are ready to start adding meta tags:
use PedroBorges\MetaTags\MetaTags; $tags = new MetaTags; // <title>My Awesome Site</title> $tags->title('My Awesome Site'); // <meta name="description" content="My site description"> $tags->meta('description', 'My site description'); // <link rel="canonical" href="https://pedroborg.es"> // <link rel="alternate" hreflang="en" href="https://en.pedroborg.es"> $tags->link('canonical', 'https://pedroborg.es'); $tags->link('alternate', [ 'hreflang' => 'en', 'href' => 'https://en.pedroborg.es' ]); // <meta property="og:title" content="The Title"> // <meta property="og:type" content="website"> // <meta property="og:url" content="https://pedroborg.es"> // <meta property="og:image" content="https://pedroborg.es/cover.jpg"> $tags->og('title', 'The title'); $tags->og('type', 'website'); $tags->og('url', 'https://pedroborg.es'); $tags->og('image', 'https://pedroborg.es/cover.jpg'); // <meta name="twitter:card" content="summary"> // <meta name="twitter:site" content="@pedroborg_es"> $tags->twitter('card', 'summary'); $tags->twitter('site', '@pedroborg_es'); // <script type="application/ld+json"> // { // "@context": "http://schema.org", // "@type": "Person", // "name": "Pedro Borges" // } // </script> $tags->jsonld([ '@context' => 'http://schema.org', '@type': 'Person', 'name': 'Pedro Borges' ]);
When you are ready to output them, use the render
method inside your template <head>
element:
<html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <?php echo $tags->render() ?>
You can also render only one tag:
<?php echo $tags->render('title') ?>
Or specify which tags to render:
<?php echo $tags->render(['og', 'twitter', 'json-ld']) ?>
By default Meta Tag will indent the tags with 4 spaces and use the following order:
<title>
<meta>
(General)<meta property="og:*">
(Open Graph)<meta name="twitter:*">
(Twitter Cards)<link>
<script type="application/ld+json">
(JSON-LD)
You can change that when instantiating the MetaTag
class:
use PedroBorges\MetaTags\MetaTags; $tags = new MetaTags("\t", ['meta', 'title', 'link', 'og', 'twitter', 'json-ld']);
Change Log
All notable changes to this project will be documented at: https://github.com/pedroborges/meta-tags/blob/master/changelog.md
License
Meta Tags is open-sourced software licensed under the MIT license.
Copyright © 2018 Pedro Borges oi@pedroborg.es