Всем привет! У меня есть вот такой вызов функции:
$repeater = get_post_meta( $post_id, 'faqshema', true);
$cnt = count($repeater);
echo '
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
';
foreach($repeater as $one){
echo '
{
"@type": "Question",
"name": "';
echo $one['question'];
echo '",
"acceptedAnswer": {
"@type": "Answer",
"text": "';
echo $one['answer'];
echo '"
}
}';
if($cnt > 1) {echo ',' ;}
$cnt --;
}//foreach
echo '
]
}
</script>
';
Код берет данные вопрос/ответ с произвольного поля текущей записи и выводит в футер... Все работает, все ок.
Сейчас этот код работает для двух типов записи, и надо еще чтобы работал для двух дополнительно.... Получается что этот код дублируется 4 раза.... Что не очень хорошо... что то смениться и потом в 4 местах менять.... Хочу завернуть этот код в функцию и в нужном месте для нужного типа записи просто дергать функцию, например так:
//выводим микроразметку faq для событий
get_repeater(get_the_ID());
//в другом файле у меня лежит сама функция:
get_repeater(){
//В php не силен и вот тут я не знаю как собрать всю ту разметку в одну строку и вернуть через return($stringFaq);
}