# If check and fallback in Kirby Meta plugin

**URL:** <https://forum.getkirby.com/t/if-check-and-fallback-in-kirby-meta-plugin/8843>\
**Category:** Questions\
**Tags:** v2\
**Created:** [October 23, 2017, 4:35pm UTC](https://forum.getkirby.com/t/if-check-and-fallback-in-kirby-meta-plugin/8843 "2017-10-23T16:35:23Z")\
**Posts on this page:** 1\
**Showing post:** 20

<div class="post-metadata">

**Author:** ![jimbobrjames](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.getkirby.com/jimbobrjames/32/5802_2.png) [@jimbobrjames](https://forum.getkirby.com/u/jimbobrjames)\
**Post date:** [November 23, 2017, 11:50am UTC](https://forum.getkirby.com/t/if-check-and-fallback-in-kirby-meta-plugin/8843/20 "2017-11-23T11:50:53Z")

</div>

Ok so now its the future and the [Meta Tags Plugin](https://github.com/pedroborges/kirby-meta-tags) has been updated for Kirby 2.5.7 which has meant some slight changes to the syntax it uses because I [found an issue](https://forum.getkirby.com/t/upgrade-to-2-5-6-2-5-7-cannot-declare-class-asset-because-the-name-is-already-in-use/9020).

Heres the updated version of the fallback above, using the new syntax, in case its useful to somebody.

```auto
// SEO Settings
// Global
c::set('meta-tags.default', function(Page $page, Site $site) {
    return [
        'title' => $page->isHomePage()
          ? $site->seotitle()
          : $page->seotitle().' | '.$site->seotitle(),
          'meta' => [
              'robots' => 'index,follow,noodp',
              'description' => $page->isHomePage()
                ? $site->seometa()
                : $page->seometa(),
              'keywords' => $page->isHomePage()
                ? $site->seokeywords()
                : $page->seokeywords(),
              'robots' => 'index,follow,noodp',
          ],
        'link' => [
            'canonical' => $page->url()
        ],
        'og' => [
            'title' => $page->isHomePage()
                ? $site->seotitle()
                : $page->seotitle().' | '.$site->seotitle(),
            'type' => 'website',
            'site_name' => $site->title(),
            'url' => $page->url(),

            'image' => function($page) {
               $image = $page->shareimage()->toFile();
               if($image) {
                 return $image->focusCrop(1200, 630)->url();
               } else {
                 $image = site()->shareimage()->toFile();
                 if($image) {
                    return $image->url();
                 } else {
                    $image = new Asset('assets/images/fallback.png');
                    return $image->url();
                 }
               }
            },

            'description' => $page->isHomePage()
                ? $site->seometa()
                : $page->seometa().' | '.$site->seotitle(),
        ],
        'twitter' => [
            'title' => $page->isHomePage()
                ? $site->seotitle()
                : $page->seotitle().' | '.$site->seotitle(),
            'card' => 'summary',
            'site' => $site->twitterusername(),
            'creator' => $site->twitterhandle(),
            'image' => function($page) {
               $image = $page->shareimage()->toFile();
               if($image) {
                 return $image->focusCrop(800, 400)->url();
               } else {
                 $image = site()->shareimage()->toFile();
                 if($image) {
                    return $image->url();
                 } else {
                    $image = new Asset('assets/images/fallback.png');
                    return $image->url();
                 }
               }
            },
            'url' => $page->url(),
            'description' => $page->isHomePage()
                ? $site->seometa()
                : $page->seometa().' | '.$site->seotitle(),
        ]
    ];
});

// Specific Pages
c::set('meta-tags.templates', function(Page $page, Site $site) {
    return [
      'newsarticle' => [
          'og' => [
              'type' => 'article',
          ],
          'twitter' => [
              'card' => 'summary_large_image',
              'image' => function($page) {
                 $image = $page->shareimage()->toFile();
                 if($image) {
                   return $image->focusCrop(800, 400)->url();
                 } else {
                   $image = site()->shareimage()->toFile();
                   if($image) {
                      return $image->url();
                   } else {
                      $image = new Asset('assets/images/fallback.png');
                      return $image->url();
                   }
                 }
              },
          ],
      ],
    ];
});
```

---

_[View the full topic](https://forum.getkirby.com/t/if-check-and-fallback-in-kirby-meta-plugin/8843)._
