【发布时间】:2013-01-14 11:49:06
【问题描述】:
我正在修改 Tumblr 主题。我有一个页面时事通讯,并且仅在此页面上我想添加一个注册表单(硬编码)。
是否可以在 Tumblr 中查看当前页面是否 == 'newsletter' 或其他内容?也许是通过身份证?
我知道帖子是可能的,但我需要它作为一个页面。
谢谢!
【问题讨论】:
标签: tumblr
我正在修改 Tumblr 主题。我有一个页面时事通讯,并且仅在此页面上我想添加一个注册表单(硬编码)。
是否可以在 Tumblr 中查看当前页面是否 == 'newsletter' 或其他内容?也许是通过身份证?
我知道帖子是可能的,但我需要它作为一个页面。
谢谢!
【问题讨论】:
标签: tumblr
一个(稍微)更安全的解决方案/黑客 -
{block:PermalinkPage}{block:Posts}{block:PostTitle}
<script>
var postID = '{PostID}',
postTitle = {JSPostTitle};
if (!postID && postTitle === 'Name of your Newsletter Page') {
// Tumblr custom "pages" have no post ID
// Dynamically insert your HTML, or Dynamically "Show" a hidden element
}
</script>
{/block:PostTitle}{/block:Posts}{/block:PermalinkPage}
Name of your Newsletter Page 是您在 Tumblr 上为您的时事通讯页面分配的页面标题。
将此<script> 包装在{block:PermalinkPage}...etc 中可确保脚本仅在正确类型的页面上呈现。
然后,为了安全起见,我们必须检查这个永久链接页面是否没有有帖子 ID,所以我们不会意外匹配实际的帖子。对于没有帖子 ID 的永久链接页面,唯一的另一种可能性是自定义 tumblr 页面,因此只需将页面标题检查为某个预设值即可。
一般来说,基于页面的window.location切换确实不是一个好的解决方案。
至于创建/显示注册表单——我个人会使用display: none 对 Tumblr 主题上的表单进行硬编码,然后使用 JavaScript 切换可见的表单——但这是我的意见。您也可以使用脚本将其插入到 DOM 中。
【讨论】:
不幸的是,Tumblr 中不存在该功能。您需要做的是检查您所在页面的 URL,这非常简单。
你应该可以在 JavaScript 中做这样的事情:
var currentPath = window.location.pathname; // store current path
if( currentPath.indexOf('newsletter') ) { // check if 'newsletter' is in our path
// add your sign up form here
}
【讨论】: