Content management system 在SilverStripe CMS中移动元数据字段?

Content management system 在SilverStripe CMS中移动元数据字段?,content-management-system,silverstripe,Content Management System,Silverstripe,我正在尝试移动SilverStripe CMS中的默认元数据字段,但似乎无法成功。这就是我尝试过的: $fields->removeFieldFromTab("Root.Content.Main", "Metadata"); $fields->insertBefore(new FormField('Metadata', 'Metadata'), 'Content'); 但它不起作用。我可以删除这个字段,但将它添加回我想要的位置是一个挑战,因为它不仅仅是一个普通的文本

我正在尝试移动SilverStripe CMS中的默认元数据字段,但似乎无法成功。这就是我尝试过的:

    $fields->removeFieldFromTab("Root.Content.Main", "Metadata");
    $fields->insertBefore(new FormField('Metadata', 'Metadata'), 'Content');
但它不起作用。我可以删除这个字段,但将它添加回我想要的位置是一个挑战,因为它不仅仅是一个普通的文本字段或HTML字段。通过上面的代码,我得到了一个新的元数据字段,插入到我想要的位置,但它不是正确的字段类型,也不包含任何现有的元数据字段元素


有没有办法在这样的字段中移动?

我们可以使用
$fields->fieldByName('Root.Main.Metadata')
检索当前的元数据字段,以便将其放回

请尝试以下操作:

function getCMSFields() {
    $fields = parent::getCMSFields();

    if ($metadataField = $fields->fieldByName('Root.Main.Metadata')) {
        $fields->removeFieldFromTab('Root.Main', 'Metadata');
        $fields->addFieldToTab('Root.Main', $metadataField, 'Content');
    }

    return $fields;
}