Chào các bác, mình mới mò qua template blogger vì em cần sửa một số thứ. Hiện tại khi truy cập vào trang bài viết em muốn lấy nội dung của bài viết ví dụ : http://mydomain.blogspot.com/bai-viet.html Em có search thấy là dùng thẻ <data. post.body/>. Nhưng em chạy toàn báo lỗi <!--Can't find substitution for tag [body.post]--> Bác nào biết về blogger giúp em với a. Em mò cả mấy ngày trời ko đc. Gà quá
Tùy vào var mà thớt truyền vào, thường là post nên nó là <data: post.body/> (<= không có khoảng trắng, do tính năng smile của 4rum) chứ không phải <data:body.post/> . Ví dụ như bên dưới - dòng 37 : HTML: <b:section id='PostDetail1' showaddelement='yes'> <b:widget id='Blog1' locked='true' title='Post' type='Blog'> <b:includable id='main' var='top'> <b:include data='posts' name='breadCrumb'/> <b:if cond='data:posts.notEmpty'> <b:loop index='i' values='data:posts' var='post'> <b:if cond='data:blog.pageType == "item" or data:blog.pageType == "static_page"'> <b:include data='post' name='post'/> <b:else/> <b:include data='post' name='postItems'/> </b:if> </b:loop> <b:else/> <div>No results matching query were found.</div> </b:if> <b:include name='pageNavigation'/> </b:includable> <b:includable id='postItems' var='post'> <article> <header><h2><a expr:href='data:post.url' expr:title='data:post.title.escaped'><data:post.title/></a></h2></header> <b:if cond='data:post.firstImageUrl != ""'> <a expr:href='data:post.url' expr:title='data:post.title.escaped' class='thumbnail'> <img expr:src='data:post.firstImageUrl' expr:alt='data:post.title.escaped'/> </a> </b:if> <b:include data='post' name='postMeta'/> <div class='post-snippet'> <b:eval expr='data:post.longSnippet snippet {length: 250, links: false, linebreaks: false}'/> </div> </article> </b:includable> <b:includable id='post' var='post'> <b:include data='post' name='schemaBlogPosting'/> <div class='post-entry'> <b:include data='post' name='postMeta'/> <div class='post-body'> <data:post.body/> </div> <b:if cond='data:post.labels'> <div class='post-labels'> Labels : <b:loop values='data:post.labels' var='label'> <a expr:href='data:label.url' expr:title='data:label.name' rel='category tag'><data:label.name/></a><b:if cond='data:label.isLast != true'>, </b:if> </b:loop> </div> </b:if> </div> </b:includable> <b:includable id='schemaBlogPosting' var='post'> <script type='application/ld+json'>{"@context":"http://schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"<data:post.url/>"},"headline":"<data:post.title.escaped/>",<b:if cond='data:post.firstImageUrl'>"image":{"@type":"ImageObject","url":"<data:post.firstImageUrl/>"},</b:if><b:if cond='data:post.thumbnailUrl'>"thumbnailUrl":"<data:post.thumbnailUrl/>",</b:if>"datePublished":"<data:post.timestampISO8601/>","dateModified":"<data:post.lastUpdatedISO8601/>","author":{"@type":"Person","name":"<data:post.author/>"},"publisher":{"@type":"Organization","name":"{@.author.name}"},"description":"<b:if cond='data:blog.metaDescription == data:view.description'><data:view.description.escaped/><b:else/><data:post.snippet.escaped/></b:if>"}</script> </b:includable> <b:includable id='breadCrumb' var='posts'> <b:if cond='data:blog.url != data:blog.homepageUrl'> <script type='application/ld+json'>{"@context":"http://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WebSite","@id":"<data:blog.homepageUrl/>","name":"Homepage"}},<b:if cond='data:blog.pageType == "item" or data:blog.pageType == "static_page"'><b:loop values='data:posts' var='post'><b:if cond='data:post.labels'><b:loop index='i' values='data:post.labels' var='label'><b:if cond='data:i == 0'>{"@type":"ListItem","position":2,"item":{"@type":"WebPage","@id":"<data:label.url/>","name":"<data:label.name/>"}},</b:if></b:loop>{"@type":"ListItem","position":3,"item":{"@type":"WebPage","@id":"<data:view.url/>","name":"<data:view.title.escaped/>"}}<b:else/>{"@type":"ListItem","position":2,"item":{"@type":"WebPage","@id":"<data:view.url/>","name":"<data:view.title.escaped/>"}}</b:if></b:loop><b:else/>{"@type":"ListItem","position":2,"item":{"@type":"WebPage","@id":"<data:view.url/>","name":"<b:if cond='data:blog.searchQuery'><data:blog.searchQuery/><b:elseif cond='data:blog.searchLabel'/><data:blog.searchLabel/><b:else/><data:blog.title.escaped/></b:if>"}}</b:if>]}</script> </b:if> </b:includable> <b:includable id='postMeta' var='post'> <div class='post-meta'>By <span class='author'><data:post.author/></span> at <span class='timestamp'><data:post.timestamp/></span></div> </b:includable> <b:includable id='pageNavigation'> <b:if cond='data:olderPageUrl or data:newerPageUrl'> <div class='page-navigator'> <div class='clearfix'></div> <b:if cond='data:newerPageUrl'> <b:if cond='data:blog.url != data:blog.homepageUrl + data:blog.searchLabel'> <a class='newer' expr:href='data:newerPageUrl' expr:title='data:newerPageTitle'>« <data:newerPageTitle/></a> </b:if> </b:if> <b:if cond='data:olderPageUrl'> <a class='older' expr:href='data:olderPageUrl' expr:title='data:olderPageTitle'><data:olderPageTitle/> »</a> </b:if> <div class='clearfix'></div> </div> </b:if> </b:includable> </b:widget> </b:section>
Có chỗ nào hd lập trình themes cho blogspot ko thím nhỉ? Mấy cái themes blogspot nhìn củng vi diệu quá trời luôn
Em tự mò và tham khảo thêm mấy theme phổ biến, ngoài ra em cũng tham khảo qua : Code: https://bloggerbook.blakbin.com/ Link đó cũng có nhiều cái hay. Trước em viết bằng PHP để xuất theme blogger nhanh gọn lẹ mà import qua file xml được không tới 2000 post, nó không nhập nữa, cũng không báo lỗi gì luôn, mấy bữa sau cũng vậy. Nên em bỏ luôn, blogger chỉ vệ tinh với tên miền tùy chỉnh thì tạm ổn.
Sorry bác em gõ sai phải là <data: post.body/> mới đúng ko có dấu cách. Nhưng em gõ vào nó toàn báo <!--Can't find substitution for tag [body.post]--> là sao nhỉ
Ví dụ như thế này em muốn in ra nội dung bài viết HTML: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html> <html b:css='false' b:defaultwidgetversion='2' b:layoutsVersion='3' b:responsive='true' b:templateUrl='indie.xml' b:templateVersion='1.0.0' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <meta content='width=device-width, initial-scale=1' name='viewport'/> <title><data:blog.pageTitle/></title> <b:skin><![CDATA[]]></b:skin> <link href='https://mydomain.comcss/style.css' rel='stylesheet' type='text/css'/> </head> <body> <header class='dsk-header'> <b:section id='header' maxwidget='1' name='header' showaddelement='yes'/> <nav class='nav normal'> <div class='nav-wrapper'> <div class='nav-logo'> <a href='#'/> </div> </div> </nav> </header> <data:post.body/> <footer> Site Footer </footer> </body> </html>
Cấu trúc của thớt như vậy lỗi là đúng rồi, <data: post.body/> phải nằm trong widget có type='Blog' hoặc type='PopularPosts'. Dễ nhất là thớt mở cái theme mặc định của Blogger seach đoạn <data: post.body/> đó rồi xem cấu trúc của nó. Cũng dễ, cơ bản có 2 widget đó + viết lại mấy thẻ meta với bổ sung snippet nữa.