5

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

4

8 回答 8

7

我只是在这里写了相反问题的解决方案:

您可以从那里获得灵感并实施相反的方法。或者,您可以简单地将“隐藏”标签添加到您不想在主页上显示的每一项内容。

于 2013-08-10T13:18:01.447 回答
7

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

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

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

接下来,在主题 HTML 中的“<body>”之后,粘贴以下内容:

{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/?”),它将显示您的所有帖子。

于 2014-05-07T18:04:54.650 回答
3

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

1.找到文章标签,添加类名:

类=“没有特色{TagsAsClasses}

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

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

2.找到article标签前面的div标签,加上cla​​ssname:

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;}

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

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

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

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

于 2015-04-07T00:09:13.153 回答
1

Tumblr 的自定义主题不提供这样的功能。

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

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

于 2013-07-01T18:04:03.603 回答
0

实际上,这是可能的,但它可能无法按照您的意愿工作。

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

第二。用这个替换你的开场帖 div:2nd。添加这个css

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

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

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

如果您希望您的用户在访问您的博客时被定向到特定的“启动页面”,您总是可以使用 jquery 重定向脚本。希望这对您有所帮助!

于 2013-07-04T17:18:17.850 回答
0

我很遗憾地说,截至今天,他们现有的主题选项,如果不严重破坏你的 seo 声誉,你就无法实现这一目标。

于 2013-11-21T02:15:36.137 回答
0

我已经尝试了很多方法来做到这一点,使用 tumblr php api 和其他,这对我有用:我正在使用 tumblr 之外的页面并通过 curl 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;
于 2014-02-06T19:45:02.717 回答
0

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

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

home您为希望在索引页面上看到的帖子提供的标签在哪里。这基本上会将正确的文章加载到帖子 div 中,替换那里的内容。有关更多信息,请参阅 jquery 手册页:http ://api.jquery.com/load/ 。

于 2018-01-13T22:37:19.157 回答