在tumblr中,仅显示主页中具有特定标记的帖子

时间:2013-06-30 20:41:32

标签: tumblr

在tumblr中,是否可以仅在主页中显示带有特定标签的帖子? 如果是这样,它是如何完成的?

8 个答案:

答案 0 :(得分:7)

我刚刚写了解相反问题的解决方案:

你可以从那里获取灵感并实施相反的目标。或者,您只需向主页上不希望显示的每个内容添加“隐藏”标记。

答案 1 :(得分:6)

我知道这个话题已经很老了,但我想我会分享我为那些仍在寻找这个问题答案的人所做的一切。

首先,在"< / title>"之后粘贴以下代码在您的主题HTML。

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

接下来,紧跟在&#34;&lt; body&gt;&#34;在您主题的HTML中,粘贴以下内容:

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

在您的主题设置中,您应该会看到一个标有&#34;默认标记&#34;的框。将您喜欢的帖子标记放在该框中(没有标签),然后点击保存。

现在,如果有人访问您的博客,它会将其转发到显示带有指定标记的帖子的页面。当然,这可能不是最好的方式,但这是我能想出的最好的方式,不会弄乱主题。

我喜欢这种做法的另一个方法是,你可以向某人发送你的博客网址&#34; /?&#34;附加到它(例如&#34; myblog.tumblr.com /?&#34;),它将显示你的所有帖子。

答案 2 :(得分:3)

使用mircealungu的建议对我来说非常合适!我是这样做的:

1。找到文章标记,并添加类名:

class =“ notfeatured {TagsAsClasses}

如果它已有类名,请在类名引号内添加上面粗体的部分。我最终看起来像这样:

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

2. 找到文章标记之前的div标记,并添加类名:

class =“ {block:TagPage} tag_page {/ block:TagPage} {block:PermalinkPage} perma_page {/ block:PermalinkPage}

同样,如果一个类已经存在,只需在类名引号内添加上面粗体的部分。我这样结束了:

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

3。最后,将其添加到您的CSS:

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

现在任何标记为“精选”的帖子都会显示在您的主页上,但没有其他内容。到目前为止我没有任何问题,它的效果很好!你可以看到它here

您还可以使用javascript对显示进行重新排序,以便您可以使精选帖子首先显示在列表中。脚本非常简单:

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

here is a demo。只需将其放在javascript标记内,并将其放在主题中的/ body标记之前。在这种情况下,请不要使用上面的CSS,因为您不想隐藏帖子。我为脚本实现了一个.top类,并为CSS保留了.featured类,我同时使用了CSS和脚本。

答案 3 :(得分:1)

Tumblr的Custom Themes没有提供这样的功能。

您可以使用JS或CSS(在视觉上)隐藏索引页面上没有特定标记的所有帖子,但这样您就不再拥有每页的完整10个(或任何您配置的)帖子。

您可以使用Tumblr的API创建匹配帖子列表(使用Javascript)并显示该内容而不是默认帖子(因此您的自定义主题将仅包含索引页面内容的脚本)。但是,您必须确保寻呼机仍可正常工作。

答案 4 :(得分:0)

实际上,这是可能的,但它可能无法发挥作用。

第一。识别您个人帖子的ID(通常类似#post或#entry,让我们称之为#entry)

第二。用这个替换你的开场发布div: 第2位。添加这一点css

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

第三。将您要在主页上显示的所有帖子标记为“精选”

这应该可行,但它很可能会隐藏您搜索页面和标签页面上的所有非“特色”帖子,这可能是您不想要的。

如果您希望用户在访问博客时被定向到特定的“启动页面”,则可以始终使用jquery重定向脚本。希望其中一些有所帮助!

答案 5 :(得分:0)

我很遗憾地说,凭借截至今天的现有主题选项,如果不会破坏您的声誉,就无法实现这一目标。

答案 6 :(得分:0)

我尝试了很多方法,使用tumblr php api和其他方法, 这对我有用:我在tumblr之外使用页面并通过curl php调用加载标记的帖子。 它可以通过ajax完成,但出于搜索引擎优化的原因,我想使用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;

答案 7 :(得分:0)

我意识到这已经过时了,但我只是必须这样做,所以这是我的解决方案。在主题的末尾,在脚本标签中添加:

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

其中home是您希望在索引页面上显示的帖子的标记。这将基本上将正确的文章加载到帖子div中,替换它的内容。有关详细信息,请参阅jquery手册页:http://api.jquery.com/load/