2017-10-14 3 views
1

Für HEXO Blog ... Ich weiß, dass Meta-Beschreibung in der Konfigurationsdatei geschrieben ist und über alle Seiten funktioniert.Meta-Beschreibung für "Tag" und "Kategorien" Seiten

Für Blogposts kann ich individuelle Meta-Beschreibungen erstellen und das funktioniert für die Suchmaschinen.

Meine "Tag" - und "Kategorien" -Seiten werden jetzt indiziert und mit Meta-Beschreibung der Homepage. Das ist nicht gut.

Also frage ich, ob es möglich ist, eine benutzerdefinierte Meta-Beschreibung für "Tag" und "Kategorien" Seiten zu erstellen? So etwas wie ... description: this is a page about {{tag}}

und

description: this is a page about {{category}}

Dies ist der Code in meinem head.ejs. Die Hauptkonfigurationsdatei der Site hat description: main config meta-description text.

<%if(metaDescription){%> 
 
<meta name="description" content="<%= config.description %>"> 
 
    <% } else if (page.description){ %> 
 
     <meta name="description" content="<%= page.description %>"> 
 
     <% } else if (page.excerpt){ %> 
 
     <meta name="description" content="<%= strip_html(page.excerpt).replace(/^\s*/, '').replace(/\s*$/, '').replace(/[\n,\r]/g,'') %>"> 
 
     <% } else if (page.content){ %> 
 
     <meta name="description" content="<%= strip_html(page.content).replace(/^\s*/, '').replace(/\s*$/, '').substring(0, 150).replace(/[\n,\r]/g,'') %>"> 
 
     <% } else if (config.description){ %> 
 
     <meta name="description" content="<%= config.description %>"> 
 
     <% } 
 
     <% if (page.keywords){ %> 
 
     <meta name="keywords" content="<%= page.keywords %>"> 
 
     <% } else if (page.tags){ %> 
 
     <% 
 
     var thistags=[]; 
 
     page.tags.each(function(k){ 
 
     thistags.push(k.name); 
 
     }) %> 
 
     <meta name="keywords" content="<%= thistags %>"> 
 
     <% } %>

Antwort

1

Dies alles wird von Ihrem Thema behandelt, so dass Sie die Logik dort hinzufügen müssen.

Sie müssen überprüfen, ob Ihre Seite ein Tag oder Kategorieindex ist und eine eigene Beschreibung dort erzeugen:

let description = page.description; // Normal case when your desc comes from meta data 


else if (page.tag) { 
    description = 'This is a page about ' + page.tag; 
} else if (page.category) { 
    description = 'This is a page about ' + page.category; 
} 

// Use your description variable as you are currently doing 

EDIT: basierend auf Post-Update (hinzugefügt head.ejs)

else if (page.tag) { 
    <meta name="description" content="<%= 'This is a page about ' + page.tag %>"> 
} else if (page.category) { 
    <meta name="description" content="<%= 'This is a page about ' + page.category %>"> 
} 
+0

Hallo .. Ich habe schon viel von Ihrem Blog gelernt ... http://www.codebloc.com/2016/03/Create-an-Hexo-Theme-Part-1-Index/ - schön, Sie hier auch zu sehen ... :) Über die Beschreibung, Sinn, aber wo genau zu implementieren? Ich habe eine Posts Übersichtsseite und dies nimmt die Logik von 'archive.ejs', meine' tags' Seite und ich nehme an, 'categories' Seite nimmt auch die Logik von meinem' archive.ejs' teilweise, also würde ich obigen Code hinzufügen 'archieve.ejs'? Wie auch immer, die Standard-Meta-Beschreibung funktioniert immer noch für NON-Tag und NON-Kategorien, weil ich das in meiner Hauptdatei 'config' eingestellt habe, richtig? – raulbaros

+0

Wenn Sie Meta-Beschreibung von der Konfig kommt, perfekt. Der Rest der Logik sollte implementiert werden, wo immer Sie es brauchen: in Ihrem Fall wahrscheinlich 'head.ejs' oder etwas ähnliches. – klugjo

+1

hab es, danke! – raulbaros

Verwandte Themen