2017-10-14 10 views
1

HEXO 블로그의 경우 ... 메타 설명은 구성 파일에 기록되어 모든 페이지에서 작동합니다."tag"및 "categories"페이지에 대한 메타 설명

blogposts에 대해 개별 메타 설명을 만들 수 있으며 검색 엔진에서 작동합니다.

그러나 "태그"및 "카테고리"페이지는 색인 생성되었으며 홈 페이지의 메타 설명이 포함되어 있습니다. 좋지 않습니다.

그래서 "태그"및 "카테고리"페이지에 대한 사용자 정의 메타 설명을 작성할 수 있는지 묻는 중입니까? 이것은 내 head.ejs의 코드입니다 description: this is a page about {{tag}}

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

뭔가 같은 .... 사이트 주 설정 파일은 description: main config meta-description text입니다. 당신이 거기에 논리를 추가해야하므로

답변

1

<%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 %>"> 
 
     <% } %>

모든 테마에 의해 처리됩니다.

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 

편집이 :

당신은 당신의 페이지에 태그 또는 범주 인덱스 있는지 확인하고 거기에 사용자 정의 설명을 생성해야

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

안녕하세요 포스트 업데이트에 따라 (head.ejs 추가) .. 이미 블로그에서 많은 것을 배웠습니다 ... http://www.codeblocq.com/2016/03/Create-an-Hexo-Theme-Part-1-Index/ - 여기에서 또한 만나서 반갑습니다 ... :) 설명에 대해, 이해가 되겠지만, 정확히 이것을 구현하는 곳은 어디입니까? 게시물 개요 페이지가 있는데 이것은'archive.ejs', 내'tags' 페이지에서 논리를 취하고'categories' 페이지가 내 'archive.ejs' 부분의 논리를 취하는 것으로 가정하므로 위 코드를 'archieve.ejs'? 그리고 어느 쪽의 방법 으로든 기본 'meta-description'은 NON-tag와 NON-categories에서 여전히 작동합니다. – raulbaros

+0

메타 설명이 config에서 오는 경우 완벽합니다. 논리의 나머지 부분은 필요하다면 어디에나 구현해야합니다 : 아마도 여러분의 경우에는 아마도'head.ejs' 또는 이와 비슷한 것이 될 것입니다. – klugjo

+1

, 감사합니다! – raulbaros