【问题标题】:Page switch in TumblrTumblr 中的页面切换
【发布时间】:2013-01-14 11:49:06
【问题描述】:

我正在修改 Tumblr 主题。我有一个页面时事通讯,并且仅在此页面上我想添加一个注册表单(硬编码)。

是否可以在 Tumblr 中查看当前页面是否 == 'newsletter' 或其他内容?也许是通过身份证?

我知道帖子是可能的,但我需要它作为一个页面。

谢谢!

【问题讨论】:

    标签: tumblr


    【解决方案1】:

    一个(稍微)更安全的解决方案/黑客 -

    {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 上为您的时事通讯页面分配的页面标题。

    将此&lt;script&gt; 包装在{block:PermalinkPage}...etc 中可确保脚本仅在正确类型的页面上呈现。

    然后,为了安全起见,我们必须检查这个永久链接页面是否没有有帖子 ID,所以我们不会意外匹配实际的帖子。对于没有帖子 ID 的永久链接页面,唯一的另一种可能性是自定义 tumblr 页面,因此只需将页面标题检查为某个预设值即可。

    一般来说,基于页面的window.location切换确实不是一个好的解决方案。

    至于创建/显示注册表单——我个人会使用display: none 对 Tumblr 主题上的表单进行硬编码,然后使用 JavaScript 切换可见的表单——但这是我的意见。您也可以使用脚本将其插入到 DOM 中。

    【讨论】:

      【解决方案2】:

      不幸的是,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
      }
      

      【讨论】:

      • 有点不确定的解决方案。如果它们在 slug 中包含“newsletter”,您可能会选择不需要的帖子页面。
      猜你喜欢
      • 1970-01-01
      • 2013-08-17
      • 2021-07-15
      • 2012-12-26
      • 2019-01-29
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多