2013-06-30 33 views
5

Trong tumblr, chỉ có thể hiển thị các bài đăng có một thẻ nhất định trong trang chủ?
Nếu vậy, làm thế nào nó được thực hiện?Trong tumblr, chỉ hiển thị các bài đăng có một thẻ nhất định trong trang chủ

+0

Bạn đang tìm cách tạo tiện ích mở rộng hay đây không phải là câu hỏi lập trình? – Ryan

+1

Đây là một câu hỏi lập trình, tôi đang tìm cách sửa đổi html của chủ đề. – Damian

Trả lời

1

Tumblr’s Custom Themes không cung cấp chức năng như vậy.

Bạn có thể sử dụng JS hoặc CSS (trực quan) ẩn tất cả bài đăng mà không có thẻ cụ thể trên trang chỉ mục, nhưng theo cách đó bạn sẽ không có đủ 10 bài đăng (hoặc bất kỳ thứ gì bạn định cấu hình) trên mỗi trang nữa.

Bạn có thể sử dụng sốcủa Tumblr để tạo danh sách bài đăng phù hợp (có Javascript) và hiển thị nội dung đó thay vì bài đăng mặc định (vì vậy chủ đề tùy chỉnh của bạn sẽ chỉ chứa tập lệnh cho nội dung trang chỉ mục). Bạn sẽ phải chắc chắn rằng máy nhắn tin vẫn hoạt động, mặc dù.

0

Thực ra, có thể, nhưng nó có thể không hoạt động theo cách bạn muốn.

1st. Xác định id của các bài đăng riêng lẻ của bạn (thường là một cái gì đó như #post hoặC#entry, hãy gọi cho bạn #entry)

thứ hai. Thay thế div mở bài đăng của bạn bằng cách này: thứ hai. Thêm bit này của css

{block:IndexPage} 
#entry (or whatever name it is) {display:none} 
.featured {display:inline !important} 
{/block:IndexPAge} 

3rd. Gắn thẻ tất cả các bài đăng bạn muốn hiển thị trên trang chủ của mình mà không có dấu ngoặc kép là "nổi bật"

Điều này sẽ hiệu quả, nhưng rất có thể sẽ ẩn tất cả các bài đăng không nổi bật trên trang tìm kiếm và trang thẻ của bạn có thể không muốn.

Nếu bạn muốn người dùng được hướng đến một 'trang splash' cụ thể khi họ truy cập vào blog của bạn, bạn luôn có thể sử dụng tập lệnh chuyển hướng jquery. Hy vọng một số điều này đã giúp!

7

Tôi chỉ viết lên những giải pháp cho vấn đề ngược lại ở đây:

Bạn có thể lấy cảm hứng từ đó và thực hiện điều ngược lại. Ngoài ra, bạn có thể chỉ cần thêm một thẻ "ẩn" vào mỗi một trong những thứ mà bạn không muốn hiển thị trên trang chủ.

0

Rất tiếc phải nói, với các tùy chọn chủ đề hiện tại của họ kể từ hôm nay, bạn không thể đạt được điều này mà không làm hỏng danh tiếng seo của bạn một cách khủng khiếp.

0

Tôi đã thử nhiều cách để làm điều này, bằng cách sử dụng tumblr php api và khác, Điều này làm việc cho tôi: Tôi đang sử dụng một trang bên ngoài tumblr và tải các bài đăng được gắn thẻ qua các cuộc gọi php curl. Nó có thể được thực hiện thông qua ajax nhưng vì lý do SEO tôi muốn sử dụng php. Đây là mã:

$oath = 'xxx'; 
$blogName = 'yyy.tumblr.com'; 
$tag='tagname'; 
$apiLink = "http://api.tumblr.com/v2/blog/$blogName/posts/?api_key=$oath&tag=$tag"; 




// Initializing curl 
$ch = curl_init($apiLink); 

// Configuring curl options 
$options = array(
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_HTTPHEADER => array('Content-type: application/json') , 
); 

// Setting curl options 
curl_setopt_array($ch, $options); 

// Getting results 
$result = curl_exec($ch); // Getting JSON result string 

$data = json_decode($result); 


$posts = $data->response->posts; 
6

Tôi biết rằng chủ đề này là khá cũ, nhưng tôi figured tôi muốn chia sẻ những gì tôi đã làm cho bất cứ ai là người vẫn đang tìm kiếm một câu trả lời cho vấn đề này.

Trước tiên, dán mã sau đây sau "</title >" trong HTML chủ đề của bạn.

<meta name="text:Default Tag" content="" /> 

Tiếp theo, ngay sau khi "< cơ thể >" trong mã HTML của chủ đề của bạn, dán sau:

{block:IndexPage}<script type="text/javascript"> 
    var url = location.href; 
    if (url == "{BlogURL}") { 
     window.location = "{BlogURL}tagged/{text:Default Tag}"; 
    } 
</script>{/block:IndexPage} 

Trong cài đặt chủ đề của bạn, bạn sẽ thấy một hộp có nhãn "Default Tag". Đặt thẻ bạn muốn bài đăng xuất hiện trong hộp đó (không có thẻ bắt đầu bằng #) và nhấp vào lưu.

Bây giờ, nếu ai đó truy cập vào blog của bạn, nó sẽ chuyển tiếp đến trang hiển thị các bài đăng có thẻ được chỉ định của bạn. Tất nhiên, điều này có lẽ không phải là cách tốt nhất để làm điều đó, nhưng đó là cách tốt nhất để tôi có thể nghĩ ra điều đó sẽ không làm rối tung chủ đề.

Một điều tôi thích về cách này để làm điều này, là bạn có thể gửi cho ai đó URL blog của bạn bằng "/?" được thêm vào nó (ví dụ: "myblog.tumblr.com/?") và nó sẽ hiển thị tất cả các bài đăng của bạn.

2

Sử dụng đề xuất của mircealungu làm việc hoàn hảo cho tôi! Đây là cách tôi đã làm nó:

1. Tìm thẻ bài báo, và thêm classname:

class = "notfeatured {TagsAsClasses}"

Nếu nó đã có classname, thêm phần in đậm phía trên bên trong dấu ngoặc kép classname. Mine đã kết thúc tìm kiếm như thế này:

<article id="{PostID}" class="post notfeatured {TagsAsClasses} {PostType}{block:PermalinkPage} {block:Date}not-{/block:Date}page{/block:PermalinkPage}"> 

2. Tìm thẻ div có trước thẻ bài báo, và thêm classname:

class =" {khối: TagPage} {tag_page/block : TagPage} {block: PermalinkPage} perma_page {/ block: PermalinkPage} "

Một lần nữa, nếu một lớp đã tồn tại, chỉ cần thêm phần in đậm phía trên bên trong dấu ngoặc kép. Mine đã kết thúc như thế này:

<div id="posts" class="{block:TagPage} tag_page {/block:TagPage}{block:PermalinkPage}perma_page{/block:PermalinkPage}" > 

3. Cuối cùng, thêm video này vào CSS của bạn:

article.notfeatured {display: none;} 
article.featured, .tag_page article.notfeatured, .perma_page article.notfeatured {display: block;} 

Bây giờ bất kỳ bài đánh dấu là "đặc trưng" sẽ hiển thị trên trang chủ của bạn, nhưng không có gì khác . Cho đến nay không có vấn đề gì đối với tôi, nó hoạt động rất tốt! Bạn có thể xem nó here.

Bạn cũng có thể sử dụng javascript để sắp xếp lại màn hình để bạn có thể làm cho các bài đăng nổi bật xuất hiện đầu tiên trong danh sách. Tập lệnh rất đơn giản:

$('article.featured').prependTo('#posts'); 

here is a demo. Chỉ cần đặt bên trong các thẻ javascript và đặt nó ngay trước thẻ/body trong chủ đề của bạn. Trong trường hợp này không sử dụng CSS ở trên, vì bạn không muốn ẩn bài đăng. Tôi đã thực hiện một lớp .top cho tập lệnh và giữ lớp .featured cho CSS, và tôi sử dụng cả CSS và tập lệnh.

0

Tôi nhận ra điều này là cũ, nhưng tôi đã phải làm điều đó, vì vậy đây là giải pháp của tôi.Vào cuối của chủ đề, trong kịch bản thẻ thêm:

{block:IndexPage} 
     $(".the-posts").load("tagged/home .the-posts article"); 
{/block:IndexPage} 

đâu home là thẻ bạn đã cho những bài đăng bạn muốn thấy trên trang index. Điều này về cơ bản sẽ tải các bài viết chính xác vào div bài viết, thay thế những gì nó có. Xem trang man jquery: http://api.jquery.com/load/ để biết thêm thông tin.

Các vấn đề liên quan