我有一个名为sidebar的代码段,代码如下。
<div id="ebook_offer">
{exp:channel:entries channel="test"}
<h3>Ebook</h3>
{/exp:channel:entries}
</div>
<div id="about_blog">
{exp:channel:entries channel="blog_sidebar"}
<h3>About Obsia's Blog</h3>
{/exp:channel:entries}
</div>
<div id="testimonials">
</div>
<div id="demo" dynamic="no" limit="1">
</div>
<div id="recent posts">
{exp:channel:entries channel="blog" limit=5 offset=1}
<h3>Recent Posts</h3>
<li>{title}</li>
{/exp:channel:entries}
</div>
<div "connect">
</div>
<div = "subscribe">
{exp:mailinglist:form list="blog_list" form_id="blog_subscribe"}
<h3>Subscribe</h3>
<p>First Name <input type="text" name="first_name"="{first_name}"></p>
<p>Email <input type="text" name="email" value="{email}"></p>
<p><input type="submit" value="submit"></p>
{/exp:mailinglist:form}
</div>
在博客模板组的index.php模板中调用此代码段,代码如下:
<div id="blog_display">
{exp:channel:entries channel="blog" limit="5"}
<h2>{title}</h2>
{author}
{if blog_images} <img src="{blog_images}" alt="blog image {title}" class="some_class" />
{/if}
{teaser}
<p>comments {comment_total} </p>
{/exp:channel:entries}
</div>
{sidebar}
我还有一个名为sidebar的频道,其中包含ebook_offer,about_blog,重新发布帖子,推荐书,订阅等字段。我可以让订阅表单显示出来。我可以在我的网页上看到最近的帖子,但看不到about_blog字段中填写的任何内容。
任何人都知道为什么博客频道有效但不是我的侧边栏频道。
答案 0 :(得分:3)
如果没有将所有代码放在我面前,我不太确定问题究竟是什么,但它可能是一些事情。对于初学者,如果您的博客主页模板中包含{exp:channel:entries}
标记,并且您在该标记中包含内部的代码段,那么您就会遇到问题。您无法将{exp:channel:entries}
嵌套在另一个内部。
此外,默认情况下,频道条目标签设置为动态。他们将查看URL以获取有关从数据库中提取哪些条目的提示。尝试将dynamic="no"
参数添加到侧边栏条目标记中,您可以了解有关here的更多信息。这应该使标签忽略页面的URL,这就是你想要的。您可能还希望将limit="1"
参数添加到该标记,以确保只呈现一个侧边栏条目。
如果这些答案都没有帮助,请告诉我!
答案 1 :(得分:1)
最佳策略是将您的代码段中的内容移动到单独的模板文件中,同时尝试解决此问题。我在侧边栏代码中发现了一些似乎不合适的事情。
<div id="ebook_offer">
{exp:channel:entries channel="test"}
<h3>Ebook</h3>
{/exp:channel:entries}
</div>
<div id="about_blog">
{exp:channel:entries channel="blog_sidebar"}
<h3>About Obsia's Blog</h3>
{/exp:channel:entries}
</div>
这似乎不是使用{exp:channel:entries}标记的正确方法。你提到“ebook_offer”是一个频道字段。但是在这里你将它用作HTML div的静态id。如果“ebook_offer”是一个字段,我会期待这样的事情:
<h3>Ebook</h3>
{exp:channel:entries channel="test"}
{ebook_offer}
{/exp:channel:entries}
与“about_blog”相同
<h3>About Obsia's Blog</h3>
{exp:channel:entries channel="blog_sidebar"}
{about_blog}
{/exp:channel:entries}
此外,我注意到您说该频道被命名为“侧边栏”,但在您的{exp:channel:entries}标签中,您正在使用“blog_sidebar”。哪个不一样,你的频道的短代码是“侧边栏”还是“博客侧栏”?
最后这对我来说有点不对了
<div id="demo" dynamic="no" limit="1">
</div>
“dynamic”和“limit”仅适用于ExpressionEngine {exp:channel:entries}标记,而不适用于常规HTML元素(如DIV)。我会尝试再次使用Bitmanic和Peter的建议,但将其应用于{exp:channel:entries},如下所示:
{exp:channel:entries channel="blog_sidebar" dynamic="off"}
...
{/exp:channel:entries}
如果您是ExpressionEngine的新手,我强烈推荐视频&amp; Ryan Ireland的教程http://eeinsider.com/videos