如何利用Tumblr {block:Permalink}检测对比自定义URL实现PayPal预渲染?
在Tumblr原生模板中匹配特定Permalink并渲染PayPal预链接
你之前尝试的{Permalink=http://example.com/post/my-product-1}写法是无效的,因为Tumblr的模板标签体系里根本没有这种语法——{block:Permalink}只是一个条件判断块,它的作用仅仅是检测当前页面是否是单个帖子/页面的详情页,没办法直接在里面做URL等值匹配。
不过不用慌,Tumblr原生模板确实支持通过内置标签实现你要的需求,完全不需要JavaScript,下面是具体的解决方案:
核心思路
利用Tumblr的{block:Equals}条件标签,结合{Permalink}(帖子详情页URL)或{PageURL}(自定义页面URL)来精准匹配目标链接,匹配成功后再渲染对应的PayPal预链接标签。
针对单帖子的实现
如果你的目标是某个特定帖子(比如Permalink为http://example.com/post/my-product-1),可以用下面的代码:
{block:PermalinkPage} <!-- 匹配目标帖子的完整Permalink --> {block:Equals}{Permalink}http://example.com/post/my-product-1{/block:Equals} <link rel="prerender" href="http://www.paypal.com/pay-link-for-my-product-1"> {/block:Equals} {/block:PermalinkPage}
或者更简洁的方式,用帖子的{PostSlug}(也就是Permalink末尾的自定义标识,比如这个例子里的my-product-1)来匹配:
{block:PermalinkPage} <!-- 匹配帖子的Slug,比完整URL更易维护 --> {block:Equals}{PostSlug}my-product-1{/block:Equals} <link rel="prerender" href="http://www.paypal.com/pay-link-for-my-product-1"> {/block:Equals} {/block:PermalinkPage}
针对自定义页面的实现
如果是自定义页面(比如URL为http://example.com/my-product-2),则用{block:Page}和{PageURL}来匹配:
{block:Page} {block:Equals}{PageURL}http://example.com/my-product-2{/block:Equals} <link rel="prerender" href="http://www.paypal.com/pay-link-for-my-product-2"> {/block:Equals} {/block:Page}
为什么这个方案可行?
- 所有标签都是Tumblr原生支持的模板语法,完全在服务器端预渲染,满足你"加速支付流程"的需求
- 只有当当前页面的Permalink/PageURL完全匹配目标值时,才会渲染对应的PayPal预链接,不会在所有页面都添加
- 不需要任何JavaScript,完全符合你的要求
内容的提问来源于stack exchange,提问作者user3027136
相关产品推荐
相关产品推荐

