<?php
|
namespace JVBase\managers\SEO\render\Traits\_Properties;
|
|
use JVBase\managers\SEO\render\Thing\Intangible\DefinedTerm;
|
use JVBase\managers\SEO\render\Traits\_Helpers\arrayHelper;
|
use JVBase\meta\Meta;
|
use JVBase\registrar\Fields;
|
|
if (!defined('ABSPATH')) {
|
exit;
|
}
|
trait keywordsTrait {
|
use arrayHelper;
|
/**
|
* @var DefinedTerm|string|array Keywords or tags used to describe some item. Multiple textual entries in a keywords list are typically delimited by commas, or by repeating the property.
|
*/
|
protected DefinedTerm|string|array $keywords;
|
|
public function getKeywords():DefinedTerm|string|array|null
|
{
|
return $this->keywords??null;
|
}
|
public function setKeywords(DefinedTerm|string|array $keywords):void
|
{
|
if (is_array($keywords)){
|
$keywords = $this->mixedArray('keywords', $keywords, ['string', 'JVBase\managers\SEO\render\Thing\Intangible\DefinedTerm']);
|
}
|
$this->keywords = $keywords;
|
}
|
|
public function setKeywordsField(Fields $fields):void
|
{
|
$fields->addField(
|
'keywords',
|
[
|
'type' => 'repeater',
|
'label' => 'Keywords',
|
'fields' => [
|
'keyword' => [
|
'type' => 'text',
|
'label' => 'Keyword',
|
],
|
],
|
]
|
);
|
}
|
|
public function formatKeywordsField(Meta $meta):void
|
{
|
$keywords = $meta->get('keywords');
|
if (!empty($keywords)) {
|
$this->setKeywords($keywords);
|
}
|
}
|
}
|