撇号 cms - 自定义页面设置
apostrophe cms - customize page settings
我想在页面设置对话框中添加元键和元描述字段,然后将它们呈现到页面中。
我发现可以在页面模板 (html) 文件中执行类似的操作:
{% extends data.outerLayout %}
{% block extraHead %}
<meta name="description" content="this is the page description" />
{% endblock %}
但是我如何允许最终用户插入这些值?
好的,在查看 apostrophe-sandbox 演示站点后,我找到了答案。
我在项目的 lib/modules
文件夹下添加了一个名为 apostrophe-custom-pages
的新文件夹,并在其中添加了一个 index.js
文件,如下所示:
module.exports = {
beforeConstruct: function(self, options) {
options.addFields = [
{
name: 'metaDescription',
label: 'Meta Description',
type: 'string'
},
{
name: 'metaTags',
label: 'Meta Tags',
type: 'string'
}
]
}
};
然后,在我的页面 html 模板中,我添加了:
{% block extraHead %}
<meta name="description" content="{{ data.page.metaDescription}}" />
<meta name="tags" content="{{ data.page.metaTags}}" />
{% endblock %}
就是这样。有用。现在我可以提供 SEO 支持。欢呼! :)
这里有一个改进的方法:
{% block extraHead %}
<meta name="description" content="{{ data.page.metaDescription | truncate(146, true, "..") | safe }}" />
{% endblock %}
我们在这里做了什么:
- 我们将元描述截断为特定长度(在本例中为 146 个字符,但您可以更改);
- 我们在谷歌搜索时习惯的末尾添加一个漂亮的 ..;
- 我们将所有内容输出为 "safe" - 这负责将某些符号或字符显示为 unicode / html 字符串。虽然理论上可以被滥用。
最后一点请看截图:
我想在页面设置对话框中添加元键和元描述字段,然后将它们呈现到页面中。 我发现可以在页面模板 (html) 文件中执行类似的操作:
{% extends data.outerLayout %}
{% block extraHead %}
<meta name="description" content="this is the page description" />
{% endblock %}
但是我如何允许最终用户插入这些值?
好的,在查看 apostrophe-sandbox 演示站点后,我找到了答案。
我在项目的 lib/modules
文件夹下添加了一个名为 apostrophe-custom-pages
的新文件夹,并在其中添加了一个 index.js
文件,如下所示:
module.exports = {
beforeConstruct: function(self, options) {
options.addFields = [
{
name: 'metaDescription',
label: 'Meta Description',
type: 'string'
},
{
name: 'metaTags',
label: 'Meta Tags',
type: 'string'
}
]
}
};
然后,在我的页面 html 模板中,我添加了:
{% block extraHead %}
<meta name="description" content="{{ data.page.metaDescription}}" />
<meta name="tags" content="{{ data.page.metaTags}}" />
{% endblock %}
就是这样。有用。现在我可以提供 SEO 支持。欢呼! :)
这里有一个改进的方法:
{% block extraHead %}
<meta name="description" content="{{ data.page.metaDescription | truncate(146, true, "..") | safe }}" />
{% endblock %}
我们在这里做了什么:
- 我们将元描述截断为特定长度(在本例中为 146 个字符,但您可以更改);
- 我们在谷歌搜索时习惯的末尾添加一个漂亮的 ..;
- 我们将所有内容输出为 "safe" - 这负责将某些符号或字符显示为 unicode / html 字符串。虽然理论上可以被滥用。
最后一点请看截图: