在 tumblr 中,是否可以在主页中仅显示带有特定标签的帖子?
如果是这样,它是如何完成的?
8 回答
我知道这个话题已经很老了,但我想我会为那些仍在寻找这个问题的答案的人分享我所做的事情。
首先,在主题 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/?”),它将显示您的所有帖子。
使用 mircealungu 的建议对我来说非常有效!我是这样做的:
1.找到文章标签,添加类名:
类=“没有特色{TagsAsClasses} ”
如果它已经有一个类名,请在类名引号内添加上面的粗体部分。我的最终看起来像这样:
<article id="{PostID}" class="post notfeatured {TagsAsClasses} {PostType}{block:PermalinkPage} {block:Date}not-{/block:Date}page{/block:PermalinkPage}">
2.找到article标签前面的div标签,加上classname:
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 和脚本。
实际上,这是可能的,但它可能无法按照您的意愿工作。
第一个。识别您的个人帖子的 ID(通常类似于 #post 或 #entry,让我们称您为 #entry)
第二。用这个替换你的开场帖 div:2nd。添加这个css
{block:IndexPage}
#entry (or whatever name it is) {display:none}
.featured {display:inline !important}
{/block:IndexPAge}
第三。将您要在主页上显示的所有不带引号的帖子标记为“精选”
这应该可行,但它很可能会隐藏您的搜索页面和标签页面上的所有非“精选”帖子,这是您可能不想要的。
如果您希望您的用户在访问您的博客时被定向到特定的“启动页面”,您总是可以使用 jquery 重定向脚本。希望这对您有所帮助!
我很遗憾地说,截至今天,他们现有的主题选项,如果不严重破坏你的 seo 声誉,你就无法实现这一目标。
我已经尝试了很多方法来做到这一点,使用 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;
我意识到这已经过时了,但我不得不这样做,所以这是我的解决方案。在主题的末尾,在脚本标签中添加:
{block:IndexPage}
$( ".the-posts" ).load( "tagged/home .the-posts article" );
{/block:IndexPage}
home
您为希望在索引页面上看到的帖子提供的标签在哪里。这基本上会将正确的文章加载到帖子 div 中,替换那里的内容。有关更多信息,请参阅 jquery 手册页:http ://api.jquery.com/load/ 。