Expression Engine新手。我有以下代码:
{exp:channel:entries channel="blogposts" orderby="date" url_title="{segment_3}" limit="1"}
<div id="cat_head_section">
<div id="cat_title">
<div id="lower_bubble_heading" class="cat_title"><h5>{title}</h5></div>
</div>
</div>
<div id="category_main">
{if no_results}
<h2>Sorry, the post you were looking for either does not exist or has been deleted.</h2>
{/if}
{url_title}
</div>
{/exp:channel:entries}
如果没有返回任何结果,我不会返回任何返回的HTML(标题除外),这对页面结构至关重要。我该如何解决这个问题?
感谢。
答案 0 :(得分:0)
如果没有结果,唯一会显示的是{if no_results}“if”语句之间的内容。如果你想要更多的HTML,你只需要在那里添加它(看起来你正在复制它,但你不会因为只显示一个或另一个 - 结果或没有结果)。
答案 1 :(得分:0)
或者,如果您不想复制代码,则可以选择将HTML另存为单独的嵌入式模板,然后将适当的值作为变量参数传递给它。如果没有结果,请为变量值指定道歉。
请参阅http://ellislab.com/expressionengine/user-guide/templates/embedding.html
答案 2 :(得分:0)
此答案假定您在此处的录入电话是页面上的主要电话。如果此调用仅适用于侧边栏或其他内容,则此答案可能不适用。
一些事情......
如果您正在构建类似EE的网址“期望”您不应该指定要查找网址标题的网址段。当您执行EE 不期望的操作时,'url_title'参数通常很有用,例如加载除最后一个段中出现的之外的特定条目。 / p>
如果您将结果限制为一个条目,则无需指定订单。
您认为需要'url_title ='参数的原因可能是因为您没有好好看看'require_entry ='。
所以我们归结为:
{exp:channel:entries channel="blogposts" limit="1" require_entry="yes"}
现在回答你的问题:
想想为什么以及如何最终要求找到一个你找不到的页面。
条目被删除了吗?有人转推了格式错误的网址吗?
A。您可能会说这些请求真的要求404响应。
使用“抱歉...”消息提供真实的404而非有效页面可确保搜索引擎不会将错误页面编入索引......
要处理此问题,您需要EE redirect tag。
{if no_results}
{redirect="404"}
{/if}
如果你这样做,你会想要一个真正有用的 404页面。
B. 另外,您可能会说无法找到某个条目时,您已经考虑过发送访问者的“下一个最佳位置” - 比您网站的404页面更好。< / p>
因此,如果您的访问者正在寻找不存在的博客条目(例如:/ blog / entry / bad_page),发送它们的最佳位置将是您的博客 index 页面(例如:/ blog)。如果你关心搜索排名,那么在破坏的入站链接有一些SEO值的情况下,这里的301重定向将有助于将SEO值赋予你要重定向的页面。
{if no_results}
{redirect='blog/' status_code="301"}
{/if}