2013-06-30 151 views
5

在tumblr一定的標籤,是否有可能只顯示帖子在主頁上有一定的標籤?
如果是這樣,它是如何完成的?在tumblr,只顯示帖子在主頁

+0

您是否想要擴展,或者這不是一個編程問題? – Ryan

+1

這是一個編程問題,我期待修改主題的HTML。 – Damian

回答

1

的tumblr的Custom Themes不提供這樣的功能。

你可以使用JS或CSS來(視覺)隱藏不索引頁上的特定標籤的所有職位,但這樣你就不必每頁滿10(或任何你配置)的職位了。

您可以使用Tumblr的API創建一個匹配的帖子列表(使用Javascript)並顯示該內容而不是默認帖子(因此您的自定義主題只包含索引頁面內容的腳本)。但是,你必須確保尋呼機仍然有效。

0

其實,這是可能的,但它可能無法工作,你怎麼想。

1st。識別您的個人帖子的ID(通常類似於#post或#entry,讓你打電話#entry)

第二。用這個替換你的開場白div: 2nd。新增CSS的該位

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

第三名。將你想在主頁上顯示的所有帖子標爲「精選」

這應該可行,但它很可能會隱藏搜索頁和標籤頁上的所有非「精選」帖子,可能不想要。

如果您希望您的用戶在訪問您的博客時被引導至特定的「splashpage」,則始終可以使用jquery重定向腳本。希望這有助於一些!

0

對不起,說他們現有的主題選項截至今天,如果沒有可怕的破壞你的seo聲望,你不能實現這一點。

0

我已經嘗試了很多方法來做到這一點,使用tumblr php api和其他, 這工作對我來說:我使用tumblr以外的頁面和通過捲曲PHP調用加載標記的帖子。 它可以通過ajax完成,但爲了SEO原因我想用php。 下面是代碼:

$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

我知道這個題目是很老,但我想我會分享我做了什麼的人誰仍然在尋找的答案,這個問題。

首先,將以下代碼粘貼到主題HTML中的「< /標題>」之後。

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

接下來,在你的主題HTML的「<體>」之後,粘貼如下:

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

在你的主題設定,你應該可以看到標有「默認標籤」框。將您希望帖子顯示的標籤放在該框中(沒有標籤),然後點擊保存。

現在,如果有人訪問您的博客,它會將他們轉發到顯示帶有您指定標籤的帖子的頁面。當然,這可能不是做這件事的最好方式,但這是我能想到的最好方式,不會搞亂主題。

我喜歡這種做法的另一件事是,您可以向某人發送帶有「/?」的博客URL (例如「myblog.tumblr.com/?」),它會顯示您的所有帖子。

2

使用mircealungu的建議完全適合我!以下是我做的:

查找的商品標籤,並添加類名:

類= 「notfeatured {TagsAsClasses}

如果已經有一個類名,加上面的粗體部分在類名引用中。礦山結束了看起來像這樣:

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

2.查找之前的文章標籤div標籤,並添加類名:

類=」 {塊:TagPage} {tag_page /塊:TagPage} {塊:PermalinkPage} perma_page {/塊:PermalinkPage}

再次,如果一類已經存在,只是以粗體添加部分上方的類名引號內。礦弄成這個樣子:

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

最後,添加到您的CSS:

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

現在已被標籤爲「精選」任何職位將顯示在您的主頁,但沒有別的。到目前爲止對我來說沒有問題,它很好用!你可以看到它here

您還可以使用JavaScript重新排列顯示,以便您可以使特色帖子首先出現在列表中。劇本非常簡單:

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

and here is a demo。只需將它放在JavaScript標籤中,並將其放在主題中的/ body標籤之前即可。在這種情況下,不要使用上面的CSS,因爲你不想隱藏帖子。我爲腳本實現了一個.top類,併爲CSS保留了.featured類,並使用CSS和腳本。

0

我意識到這是舊的,但我只是不得不這樣做,所以這裏是我的解決方案。在主題結束後,在腳本中添加標籤:

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

哪裏home是你給了你希望看到的索引頁面上的帖子的標籤。這基本上會將正確的文章加載到文章div中,取代它在那裏。查看jquery手冊頁面:http://api.jquery.com/load/瞭解更多信息。