使用编程方式在Magento中创建CMS/Page

17

我看到一个回答,它是针对这篇文章 Where are Magento static CMS blocks stored? 提供的,关于在Magento中使用PHP程序生成CMS /块。

我将代码更改为以下内容

$newBlock = Mage::getModel('cms/page')
      ->setTitle('Test CMS Page Title')
      ->setContent('Hello I\'m a new cms page.')
      ->setIdentifier('this-is-the-page-url')
      ->setIsActive(true)
      ->save();

......并且它也可以工作。我在后台的CMS页面区域看到了一个新页面的显示。

我需要添加的是设置CMS /页面中其他字段内容的功能,包括:

  • 布局(尝试设置为1列)
  • meta关键字
  • meta描述

这些字段目前为空白。到目前为止,我还没有能够弄清楚这部分。

谢谢,


你的问题非常有趣……不过我想知道你提出这个问题是为了什么需求……等待回复。 - Nikhil_K_R
1个回答

37

这是你需要的:

$cmsPageData = array(
    'title' => 'Test CMS Page Title',
    'root_template' => 'one_column',
    'meta_keywords' => 'meta,keywords',
    'meta_description' => 'meta description',
    'identifier' => 'this-is-the-page-url',
    'content_heading' => 'content heading',
    'stores' => array(0),//available for all store views
    'content' => "Hello I'm a new cms page."
);

Mage::getModel('cms/page')->setData($cmsPageData)->save();
数组的键是cms_page表字段的名称(检查数据库)。要了解值,我手动创建所需的CMS页面,然后在数据库中查看该条目的值。

太棒了!完美地工作了,但是我不得不将'one_columns'更改为'one_column'。只是一个打字错误。所以我明白了->创建一个带有键值对的数组,然后将其分配为CMS页面数据。很有道理。你怎么知道这些键和这些键的值是什么? - KyleDugger
@user1215510 我已经纠正了拼写错误,感谢你指出来。我还扩展了答案,解释了如何获取数据。 - OSdave
如何添加包括图片在内的内容? - huykon225

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接