Giter Club home page Giter Club logo

seomatic's Introduction

No Maintenance Intended

DEPRECATED

This Craft CMS 2.x plugin is no longer supported, but it is fully functional, and you may continue to use it as you see fit. The license also allows you to fork it and make changes as needed for legacy support reasons.

The Craft CMS 3.x version of this plugin can be found here: craft-seomatic and can also be installed via the Craft Plugin Store in the Craft CP.

SEOmatic plugin for Craft

A turnkey SEO implementation for Craft CMS that is comprehensive, powerful, and flexible.

Screenshot

Related: SEOmatic for Craft 3.x

Installation

To install SEOmatic, follow these steps:

  1. Download & unzip the file and place the seomatic directory into your craft/plugins directory
  2. -OR- do a git clone https://github.com/nystudio107/seomatic.git directly into your craft/plugins folder. You can then update it with git pull
  3. -OR- install with Composer via composer require nystudio107/seomatic
  4. Install plugin in the Craft Control Panel under Settings > Plugins
  5. The plugin folder should be named seomatic for Craft to see it. GitHub recently started appending -master (the branch name) to the name of the folder for zip file downloads.

SEOmatic works on Craft 2.4.x, Craft 2.5.x, and Craft 2.6.x.

The SEOmetrics feature requires PHP 5.4 or later and that you have the php-xml extension installed.

Overview

Learn more about SEO: Modern SEO: Snake Oil vs. Substance

Learn more about JSON-LD Structured Data: JSON-LD, Structured Data and Erotica

Video overview of SEOmatic:

Video Overview of SEOmatic

SEOmatic allows you to quickly get a website up and running with a robust, comprehensive SEO strategy. It is also implemented in a Craft-y way, in that it is also flexible and customizable. The SEOmetrics feature scans your content for focus keywords, and offers analysis on how to improve your SEO.

It implements JSON-LD microdata, Dublin Core core metadata, Twitter Cards tags, Facebook OpenGraph tags, Humans.txt authorship accreditation, and as well as HTML meta tags.

The general philosophy is that SEO Site Meta can be overridden by SEO Template Meta, which can be overridden by SEO Entry Meta, which can be overridden by dynamic SEO Twig tags.

In this way, the SEO Meta tags on your site cascade, so that they are globally available, but also can be customized in a very granular way.

SEOmatic populates your templates with SEO Meta in the same way that Craft populates your templates with entry variables, with a similar level of freedom and flexibility in terms of how you utilize them.

SEOmatic also caches each unique SEO Meta request so that your website performance is minimally impacted by the rich SEO Meta tags provided.

Documentation

Please read the complete documentation in the SEOmatic Wiki or read the DOCS.md file in the repo.

To better understand how all of this metadata benefits your website, please read: Promote Your Content with Structured Data Markup

If you need to redirect from legacy URLs to preserve SEO value when rebuilding & restructuring a website, check out the Retour Plugin

Roadmap

Some things to do, and ideas for potential features:

  • [bug] Get the Template Metas implemented with full locale support, so the settings can all be per-locale based
  • [bug] Enforce *required fields on the various settings pages in the Admin CP by doing proper validation
  • [bug] The foundingDate fields probably should be dateTimeField types on the Settings pages
  • [feature] Provide SiteMap functionality. Yes, it's SEO-related, but seems like it might be better to keep SEOmatic focused (?)
  • [feature] Allow people to choose individual fields to pull from inside of Matrix and Neo blocks

Brought to you by nystudio107

seomatic's People

Contributors

benface avatar francisbou avatar khalwat avatar marionnewlevant avatar samhernandez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

seomatic's Issues

Bug: Entity description

Adding Entity Description info gives me an Internal Server Error

CDbCommand failed to execute the SQL statement: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'genericOwnerDescription' at row 1

Which license is this released?

I couldn't see the license of this repo; if you have released this work with one, can you make it more clear in the REAME or adding a LICENSE file?

Otherwise it would be good if you decide for one, whichever you want open source or not, and make it clearly visible.

Compatibility A&M forms

Loving the plugin so far, I have a little issue but it might be too specific..

When I have the SEO plugin activated, sending forms through the a&m forms plugin doesn't work anymore, it gives the error.

screen shot 2016-01-08 at 19 29 21

Although this is terribly specific to another plugin, I think it ties in to a bigger issue that involves date() fields.

Google Analytics not working

I've enabled Google Analytics by adding my ID and enabled page tracking but its not loading the tracking code

If no Facebook ID you get a template error

Using the {% set seomaticMeta = { ... } %} template tag, I was getting an error about using og array. Found through a little trial and error that the issue is because I did not have a Facebook ID in my SEOMatic Social Media area set in CP.

Is there a reason that is required? I believe OG data can be useful without it. If it is required, seems a friendlier message or someway to know that is required for OG data would be helpful.

Duplicate 'country codes' in canonical url localized site

Hi,

I've added this plugin to a localized site and I'm having some issues with the canonical url.

Given the following siteUrl config in general.php as per the docs:

'siteUrl' => array(
  "en" => 'http://testsite.lan/en/',
  "nl" => 'http://testsite.lan/nl/',
  "de" => 'http://testsite.lan/de/',
  "fr" => 'http://testsite.lan/fr/',
  "be" => 'http://testsite.lan/be/',
  "da" => 'http://testsite.lan/da/',
)

Gives the following canonical url on http://testsite.lan/en/: <link rel="canonical" href="//localhost:3000/en/en/" />.

It appears craft()->getSiteUrl() returns http://testsite.lan/en while craft()->request->urlreturns /en/ and these are concatenated together.

Is this an config issue on my end?

Modified seomaticMeta in templates not available in custom template

When using a custom template, it only ever gets the initial seomaticMeta values, changes made in templates are not applied.

I have this in my layout:

{% set seomaticTemplatePath = '_seo/index' %}
{% hook 'seomaticRender' %}

_seo/index.twig is based on plugins/seomatic/templates/_seo_meta.twig.

I can modify seomaticMeta in templates extending my layout, and even though the value of seomaticMeta within the layout template changes accordingly (as is expected), the value of seomaticMeta in the template _seo/index.twig is always set to the initial state (as prefilled by the plugin).

services/SeoMaticService.php@62

     public function render($templatePath="", $metaVars=null, $isPreview=false)
     {

         if ($templatePath)
             {
-            $htmlText = craft()->templates->render($templatePath);
+            $htmlText = craft()->templates->render($templatePath, $metaVars);
             }
         else
             {

To fix this, I passed in $metaVars to the render method as well - it works, but I'm unsure whether this is the right move.

NB: It's completely possible that I have misunderstood how templates are supposed to be used.

Getting Template Error

Here is the template error I am getting:

image

In admin I have the Twitter handle populated and saved which I believe maps to the Twitter creator no?

image

Interestingly I am not getting this in my dev env. I am getting this after I deployed to our staging server to test.

Facebook Tracking Pixel

Would be cool if we could also add our Facebook Tracking Pixel code (just like you did with Google Analytics).

The GA thing is pretty awesome btw, thanks!

Environment Dependent robots.txt

It would be great to be able to do a conditional in the robots.txt depending on environment. For example:

{% if environment = "stage" %} Disallow: / {% else %} Disallow: /craft/ {% endif %}

og:url are missing base url

On two of my sites the output of og:url is "/page" rather than "http://domain.com/page"

The meta tag previews on both a site and entry level both show the correct og:url with base url but somehow are getting over ridden by the time they are output.

My current fix is to update the _seo_meta.twig template so that line 62 reads:
{% if key == 'url' %} <meta property="og:{{ key }}" content="{{craft.request.url}}" /> {% else %} <meta property="og:{{ key }}" content="{{ value }}" /> {% endif %}

Do you know what might be causes this override?

Simple title for entry not appearing

So have put " {% hook 'seomaticRender' %}" in my header template.
But a simple entry in a new section just gets the global site title set in main config. Is this intended default behaviour?

Unfortunately I am using lots of includes and extends and cant target some of my included files....either

Override 'locale'?

More a question than an issue: right now the locale for the Facebook OpenGraph seems to be set by Craft's locale. Issue is that I often have my CP set in English (locale = en_us) but the site itself is in another language (mosly dutch or french).
Is there any place in the code where we can override this?

BTW, this is a kick-ass plugin, cannot believe this is non-commercial... is there a donate button somewhere?

Google Analytics UA Code On Pixel & Tonic

We are trying to add our UA code into a Seomatic plugin on Pixel & Tonic (see attached image). Currently the code is not communicating with our GA account or appearing on the source code of the website. Thanks for your help!

screen shot 2016-03-22 at 2 09 00 pm

Receiving 500 response error when attempting to upload images

So far I'm absolutely loving this plugin. I didn't even know about a lot the things it includes which is awesome.

Unfortunately I'm unable to upload images to the SEO Image field anywhere, including the default SEO Site Meta and in entries that require a custom image. This occurs on both my local vagrant environment and on my dev server.

In the console I'm receiving this
screenshot 2016-02-25 08 36 52

And in the network tab of the dev tools I checked out the XHR response

PHP Error [500]

Argument 1 passed to Craft\FieldsService::populateFieldType() must be an instance of Craft\FieldModel, null given, called in /var/www/cosmic.dev/core/app/controllers/AssetsController.php on line 93 and defined (/var/www/cosmic.dev/core/app/services/FieldsService.php:1045)

#0 /var/www/cosmic.dev/core/app/etc/errors/ErrorHandler.php(184): Craft\ErrorHandler->handleError()
#1 /var/www/cosmic.dev/core/app/framework/base/CErrorHandler.php(133): Craft\ErrorHandler->handleError()
#2 /var/www/cosmic.dev/core/app/framework/base/CApplication.php(824): Craft\ErrorHandler->handle()
#3 /var/www/cosmic.dev/core/app/etc/web/WebApp.php(685): Craft\WebApp->handleError()
#4 /var/www/cosmic.dev/core/app/services/FieldsService.php(1045): Craft\WebApp->handleError()
#5 /var/www/cosmic.dev/core/app/controllers/AssetsController.php(93): Craft\FieldsService->populateFieldType()
#6 /var/www/cosmic.dev/core/app/framework/web/actions/CInlineAction.php(49): Craft\AssetsController->actionExpressUpload()
#7 /var/www/cosmic.dev/core/app/framework/web/CController.php(308): CInlineAction->runWithParams()
#8 /var/www/cosmic.dev/core/app/framework/web/CController.php(286): Craft\AssetsController->runAction()
#9 /var/www/cosmic.dev/core/app/framework/web/CController.php(265): Craft\AssetsController->runActionWithFilters()
#10 /var/www/cosmic.dev/core/app/framework/web/CWebApplication.php(282): Craft\AssetsController->run()
#11 /var/www/cosmic.dev/core/app/etc/web/WebApp.php(815): Craft\WebApp->runController()
#12 /var/www/cosmic.dev/core/app/etc/web/WebApp.php(285): Craft\WebApp->_processActionRequest()
#13 /var/www/cosmic.dev/core/app/framework/base/CApplication.php(184): Craft\WebApp->processRequest()
#14 /var/www/cosmic.dev/core/app/index.php(62): Craft\WebApp->run()
#15 /var/www/cosmic.dev/www/index.php(23): require_once()

A few things about my Craft setup that might be helpful.

  • Instead of a craft directory we have a core directory that has the app and storage directories while templates, plugins, and config are one level up in the root directory of the project. This helps with not having to track the Craft app in Git.
  • I'm using an S3 bucket for all my asset uploads
  • You may see in the screenshot mission-control. This is the cpTrigger to access the CMS instead of admin

Another dev on the team I work with is using the exact same setup without any issues. So any help would be awesome.

Thanks in advance.

Retain locale once selected

If you select a locale, and go to another section, it currently defaults back to US English (it's not even default in Craft).

502 error on enabling plugin. Disabling removes this issue

Hi,

I recently took the time to add SEOmatic fields to areas of my site so that I could specify more specific meta data per entry. Doing this has caused those pages to throw a 502 bad gateway (running nginx). I have pages that do not have this field in and they run fine. Disabling the SEOmatic plugin results in the pages loading fine again. Have you had any reports on this problem before? If you need log files I can provide them, but when searching craft.log (in my local dev mode enabled environment) I don't see anything that makes sense relating to this issue. Thanks in advance, Adam

Delete old plugin folder when upgrading to 1.1.0

Just a note here for people of an issue someone just ran into.

When upgrading to SEOmatic 1.1.0, make sure that you delete the old seomatic folder before you do the upgrade.

Some FTP clients, and I think Windows, will do a merge by default, which will cause SEOmatic 1.1.0 to not function properly, because I renamed a bunch of files from xxxx.html to xxxx.twig, and a merge copy will keep them both in place.

Fieldtype Confusion

I get the title, keywords, image, and description treatment for the field type .. though find them confusing a bit for clients potentially which goes against Craft interface elegance.

I don't get the implementation for Twitter Card Type, Open Graph Type, and Robot Meta.

a) Both Twitter Card Type and Open Graph Type both don't have a null value. So you are forced to override. This seems like a dealbreaker for usage ... unless I am missing something.

b) Seems odd that all three of these would be common per entry override options and because they won't be for most content added regularly (blog or news for example) feel they create more confusion for a client than value. This, thought not a dealbreak, does cause me pause with this plugin ... I love Craft because of power and ease of use/clarity. I'll choose plugins that match as you have an eye for eventually selling it ... b would cause me to reconsider purchase among some other small quibbles.

Hope this doesn't come across as too negative ... I do appreciate what you are cooking and becuase of that I share the feedback FWIW. For now, opting not to sue the fieldtype and just rolling my own fields that will overwrite your template defaults ... which frankly seems more Crafty to me.

SEO Template

Is the SEO template meta feature an upcoming feature?

I have set up one and set the template path. I have filled in the fields but it still is showing up the Site meta for that page/template.

I am using the default:

{% hook 'seomaticRender' %}

Am I missing something that needs to go into template?

1.1 Killed Google Analytics

On sites where we already had GA tracking code the 1.1 update overrode the working tracking code with a blank one taking a clients analytics down for days before we realized it. Now we added the GA code into SEOmatic and tracking is back online - but the plug-in shouldn't output that snippet if its not filled in.

Humans.txt

Read the docs a few times. Reads as if you generate the humans.txt file on server ... is that correct?

If so the following is what is getting rendered however the humans.txt href results in a 404.

<!-- Humans.txt authorship http://humanstxt.org -->

<link type="text/plain" rel="author" href="humans.txt" />

If I am viewing a blog for example at http://site.dev/blog/is-it-possible-to I am seeing this as the url for the file http://site.dev/blog/humans.txt which does not exist.

Am I missing something?

seomaticIdentity & seomatic don't exist

I'm running the latest version of SEOmatic and trying to render my own template, but on fields that you state should start with "seomatic" or "seomaticIdentity" it just outputs an error. Even if I do a conditional to check if something is in that particular field.

e.g.

<meta property="og:site_name" content="{{ seomatic.og.site_name }}">

Just throws the error:

Variable "seomatic" does not exist

I did change the "seomatic" bit to "seomaticMeta" and it worked for the Open Graph stuff, but then Twitter data messed up.


Also - The reason I'm rendering this template is because I don't want all the meta and options outputted in the default template. It would be good if we could turn features we wanted on and off within the plugin so we don't need to create bespoke templates. Just an idea!

Channel meta [feature request]

Probably last suggestion, this is probably a bit more contentious I think - dismiss if I've got the wrong idea about usage :)

I really like the entry meta form, this is super useful for singles entries - but when looking to integrate in to a blog with many previous entries, it's not feasible to go through and assign blog fields to seomatic fields.
So in this scenario, I understand that what one would probably do is add to the twig template seomatic data, pulling in any entry fields to pass in to the meta data.

What I am imagining would be nice in this scenario though, is a page just like the entry meta form, where you can assign entry fields to seomatic fields, but on a channel-level. So, a way to edit the default field assignments on a per channel or section basis.
That way, when editing or creating an entry, the seomatic fields are already assigned with default assignments (and if they do not have a value, the subsequent available data set is used).

I've been using (and at times, writing) SEO plugins for Expression Engine and now Craft for a very long time now, I know how hard it can be to accommodate all the requirements across content types! I'm hoping my feedback is helpful.

Thanks again for awesome plugin! :)

Focus Keywords and Score Preview

I'm coming from Wordpress using the Yoast SEO plugin which had a great feature of taking the keywords for your post, analysing them and giving a score/suggestions on what could be improved to get better SEO results.

Would be awesome if something like this is planned for SEOMatic.

FR: Make meta content max lengths configurable

The developer should be able to specify a custom truncation threshold for meta title, description, and keyword content. Notwithstanding conventional wisdom regarding the optimum length limits for this content, there are cases where it would be legitimate for the developer to tweak how/if various recommendations are enforced.) (In general, a plugin should not mutate content in ways that are out-of-reach of the developer to control.)

Pingo-o-matic/RPC?

Wondering if there any merit in incorporating a ping-like functionality in seomatic?

I've read mixed things in terms of SEO benefits; some say it has little value, others say it helps a lot with traffic. WordPress does this by default, out of the box when you publish (or edit) a post. For people that use Craft for news/blogging, I could see how it would be valuable.

It'd be trivial to include I'd think with Craft's inclusion of Guzzle, just need the URL of the blog and hook in after a post in that section is created.

BTW: Great plugin. I really need to sink my teeth into this one. Been doing things the "old-fashioned" way (creating fields, etc) but this plugin really streamlines things and it really well thought-out.

Upgrade doesnt work - DB errors?

2016-01-27 13:46:14

Level error
Category application
Message Migration failed for plugin Seomatic. All later Seomatic migrations are canceled.
2016-01-27 13:46:14

Level error
Category application
Message Failed to apply migration: m151225_000000_seomatic_addHumansField (time: 0.003s)
2016-01-27 13:46:14

Level error
Category application
Message #0 /var/www/html/releases/1445249274/craft/app/etc/db/DbCommand.php(618): CDbCommand->execute()
2016-01-27 13:46:14

Level error
Category application
Message CDbCommand konnte das SQL-Statement nicht ausführen: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'craft_seomatic_settings' doesn't exist (/var/www/html/releases/1445249274/craft/app/framework/db/CDbCommand.php:358)
2016-01-27 13:46:14

Level error
Category system.db.CDbCommand
Message CDbCommand::execute() fehlgeschlagen: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'craft_seomatic_settings' doesn't exist. Der SQL-Ausdruck war: ALTER TABLE craft_seomatic_settings ADD genericCreatorHumansTxt text NOT NULL AFTER personCreatorBirthPlace.

Template Meta Issue

Hi,

First of all, thank you for the awesome plugin.

I'm having a little bit of trouble getting Template meta's working. I'm trying to set them up for sub-menu entries. While I can get the SEOmatic template meta working for the base template for the section, even though I use {% include %} for a sub-menu template within the base section template, it doesn't load when I try pointing it to the sub-menu entry template. I could be missing something here, as I'm a bit of a Craft novice, but any help would be greatly appreciated!

Google meta verification error

Hi

I'm having a problem with the google meta tag for verifying the site.

At the top of the page body just after the tag, adding the meta tag to seomatic results in:

"" />
"
<!-- Identity -->

And the google verifier does not work. I've uploaded the html file manually for now.

Thanks for such a great plugin!

Environment Variables not being parsed

I've tried placing an environment variable same as the example is given in the CP:

This is my {baseUrl}

And to the best of my ability I'm confident that baseUrl has been properly set as an environmentVariables within my craft/config/general.php file. But on the front end this is rendered as-is, without being parsed.

getFullyQualifiedUrl / Uninitialized string offset: 0

$result should never be an array I don't think?

PHP notice

Uninitialized string offset: 0

/Users/timkelty/Sites/byrne-twine/craft/plugins/seomatic/services/SeomaticService.php(2066)

2054     if (isset($srcUrlParts['scheme']) && isset($srcUrlParts['host']))
2055     {
2056 /* -- The URL is already a fully qualfied URL, do nothing */
2057     }
2058     else
2059     {
2060         $siteUrl = craft()->getSiteUrl();
2061         $urlParts = parse_url($siteUrl);
2062         if (isset($urlParts['scheme']) && isset($urlParts['host']))
2063             $siteUrl = $urlParts['scheme'] . "://" . $urlParts['host'] . "/";
2064         else
2065             $siteUrl = "/";
2066         if (($siteUrl[strlen($siteUrl) -1] == '/') && ($result[0] == '/'))
2067         {
2068             $siteUrl = rtrim($siteUrl, '/');
2069         }
2070         $result = $siteUrl . $result;
2071     }
2072 
2073     return $result;
2074 } /* -- getFullyQualifiedUrl */
2075 
2076 /* --------------------------------------------------------------------------------
2077     Extract the most important words from the passed in text via TextRank
2078 -------------------------------------------------------------------------------- */

Error on initial install

I'm getting the following error on installation on a (relatively) fresh Craft instance.

Internal Server Error

CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: Syntax error or access violation: 1101 BLOB/TEXT column 'localBusinessOwnerOpeningHours' can't have a default value

I've disabled all other plugins. It looks like it's looking for Pixel and Tonic's Store Hours plugin?

Entry title

Is having {% hook 'seomaticRender' %} in the base template sufficient to render an entry's title or is there further configuration -setup required?
I have installed and configured core settings but the only title for an entry that is shown is the global site title. It is difficult to know what seomatic is intended to do in this context.

Inquiry about '...' treatment

I have two related but likely different questions/issues with treatment of ...

  1. I have a blog title Is if Possible to ... ?. Here's how it is rendered in the title which is not so great. Any way around this outside of changing title?
<title>Is it Possible to &acirc;�&brvbar; ? | MOD-Lab</title>

  1. I am noticing also the descriptions seem to be getting truncated. Is this expected and if so how does this behave with Twitter Cards and Facebook posts?
<meta name="description" content="As a web developer and technologist the question of &quot;Is it possible?&quot; is an incredibly common one. Posed by clients, partners, and/or team members, it is shared&acirc;�&brvbar;" />

SEO Template Meta not used

Thank you so much for this great plugin - it's stuff like that, that makes a great CMS like Craft unrivaled.

Unfortunately it seems like there is an issue with displaying SEO Template Meta entries in Version 1.0.8. I always keep getting the default SiteMeta Information in frontend - even though clicking on "Preview SEO Meta Display" and "Preview SEO Meta Tags" shows the correct Template Meta Info.
Everything worked correctly though, when I uninstalled the newest Version of the plugin and installed 1.0.7 instead.
Thanks again for your work!

Support for Tags as keywords [feature request]

Hello!

On the blog I am looking to integrate this plugin with, we have a tag field associated with each entry that has pretty accurate tags, helping to link the article with other articles.

It would be quite useful if SEOmatic allowed assignment of a tag field as keyword source... It would need only to parse the tags in to a plain text version.

❤️

SEO Image — Crop Options

Hey,

great Plugin!

One thing… The SEO Images, is it possible to add a Crop Option there. It would be nice to use "From Field" and this Image will cropped in the right format.

Just an Idea, maybe it's interesting to implement it.

best
david

Field for analytics ID?

Current we keep our google analytics ID in globals. Was thinking it might be nice to have it within SEOmatic...thoughts?

PHP warning when saving robots.txt with certain Twig tags

I'm trying to set up robots.txt file to send rules contingent upon the environment, so I've tried adding this:

{% if craft.config.environment == 'production' %}
User-agent: *
Disallow:
{% else %}
User-agent: *
Disallow: /
{% endif %}

Where environment is a custom configuration variable we have set within craft/config/general.php.

When I paste this in and hit save, I'm greeted with this PHP warning:

md5() expects parameter 1 to be string, array given

I then continue to receive this whenever I attempt to access the SEO Site Meta tag in the CMS, or when I try to hit /robots.txt on the front end (of course the response comes across as plain text because of the extension).

For what it's worth, it's not just a conditional twig block that causes this error - I can also get it thrown by simply placing a single variable tag, e.g. {{ siteUrl }} or even an environment variable, e.g. {basePath}.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.