Я пытаюсь программно установить мета-тег «description» в пользовательском компоненте Joomla.
Когда я вызываю «setDescription», он добавляет мета-описание, НО без каких-либо знаков препинания (кроме знака «!»).
Я перепробовал все следующие способы:
$this->document->setDescription("This is, just, a sample meta description! Good luck.");
$this->document->description = "This is, just, a sample meta description! Good luck.";
$this->document->setMetaData("description", "This is, just, a sample meta description! Good luck.");
Но во всех вышеупомянутых попытках я видел следующий HTML-код:
<meta name="description" content="This is just a sample meta description! Good luck">
Запятые не отображаются … Полные остановки не отображаются … Отображается только восклицательный знак.
ПРИМЕЧАНИЕ 1: Кажется, что это стандартное поведение Joomla … где он пропускает все знаки препинания и допускает только «!» (возможно, потому что полное имя Joomla «Joomla!» требует восклицательный знак). Я замечаю такое поведение и в статьях Joomla.
ЗАМЕТКА 2: Запятые правильно отображаются в мета-ключевых словах … Но в моем случае мне также нужно показывать пунктуацию в описании.
Кто-нибудь сталкивался и решил такую проблему?
Оказалось, что проблема была не в самой Joomla, а скорее в структуре YJSG (на которой основан мой шаблон).
Я в основном шаблон сайта «Joomla» по умолчанию, знаки препинания начали появляться!
Итак, я обнаружил, что мне нужно отредактировать этот файл «yjsg.php» (находится в your_joomla_folder \ plugins \ system \ yjsg). Под функцией «onBeforeRender» вы должны удалить вызов «yjsg_clean_shortcodes».
Вот ссылка на оригинальную «проблемную» ссылку в коде YJSG:
https://github.com/YJSGframework/yjsg/blob/57546a9365ac4665ca43096a27de8c244f6dd742/yjsg.php#L868
Надеюсь, это поможет кому-то сэкономить драгоценное время!
Других решений пока нет …