Browse Source

Fix twitter card preview images (#215)

Hayley Hartman 5 years ago
parent
commit
47caa72394

+ 3 - 0
coderedcms/templates/coderedcms/pages/article_page.html

@@ -30,6 +30,9 @@
 {% if settings.coderedcms.SeoSettings.twitter_meta %}
     {% block twitter_card %}{% if self.cover_image %}summary_large_image{% else %}{{block.super}}{% endif %}{% endblock %}
     {% block twitter_seo_extra %}
+        {% if self.caption %}
+        <meta name="twitter:description" content="{{ self.caption }}">
+        {% endif %}
         {% if self.author.twitter %}
             <meta name="twitter:creator" content="{{self.author.twitter}}" />
         {% endif %}

+ 3 - 12
coderedcms/templates/coderedcms/pages/base.html

@@ -42,18 +42,7 @@
             <meta property="og:site_name" content="{% block og_site_name %}{{self.get_site.site_name}}{% endblock %}" />
             <meta property="og:type" content="{% block og_type %}website{% endblock %}" />
             <meta property="og:url" content="{% block og_url %}{{self.get_full_url}}{% endblock %}" />
-            <meta property="og:image" content="{% block og_image %}
-                {% if self.og_image %}
-                    {% image self.og_image original as og_logo %}
-                    {{og_logo.url}}
-                {% elif self.cover_image %}
-                    {% image self.cover_image original as og_logo %}
-                    {{og_logo.url}}
-                {% elif settings.coderedcms.LayoutSettings.logo %}
-                    {% image settings.coderedcms.LayoutSettings.logo original as og_logo %}
-                    {{og_logo.url}}
-                {% endif %}
-                {% endblock %}" />
+            <meta property="og:image" content="{% block og_image %}{% og_image self %}{% endblock %}" />
             {% endblock %}
             {% block og_seo_extra %}{% endblock %}
         {% endif %}
@@ -62,6 +51,8 @@
         {% if settings.coderedcms.SeoSettings.twitter_meta %}
             {% block twitter_seo_base %}
             <meta name="twitter:card" content="{% block twitter_card %}summary{% endblock %}" />
+            <meta name="twitter:title" content="{{self.title}}">
+            <meta name="twitter:image" content="{% og_image self %}">
             {% if settings.coderedcms.SocialMediaSettings.twitter %}
             <meta name="twitter:site" content="{% block twitter_site %}@{{settings.coderedcms.SocialMediaSettings.twitter_handle}}{% endblock %}" />
             {% endif %}

+ 16 - 0
coderedcms/templatetags/coderedcms_tags.py

@@ -17,6 +17,7 @@ from coderedcms.blocks import CoderedAdvSettings
 from coderedcms.forms import SearchForm
 from coderedcms.models import Footer, Navbar
 from coderedcms.settings import cr_settings, get_bootstrap_setting
+from coderedcms.models.wagtailsettings_models import LayoutSettings
 
 register = template.Library()
 
@@ -41,6 +42,21 @@ def generate_random_id():
     return ''.join(random.choice(string.ascii_letters + string.digits) for n in range(20))
 
 
+@register.simple_tag(takes_context=True)
+def og_image(context, page):
+    site_url = context['request'].site.root_url
+    if page.og_image:
+        relative_path = page.og_image.get_rendition('original').url
+    elif page.cover_image:
+        relative_path = page.cover_image.get_rendition('original').url
+    elif LayoutSettings.for_site(context['request'].site).logo:
+        layout_settings = LayoutSettings.for_site(context['request'].site)
+        relative_path = layout_settings.logo.get_rendition('original').url
+    else:
+        return None
+    return site_url + relative_path
+
+
 @register.simple_tag
 def is_menu_item_dropdown(value):
     return \