2016-12-09 3 views
1

Я написал собственный тип сообщения для централизованного управления свинцовыми формами, у этого есть сопроводительный короткий код, поэтому на страницу можно добавить ведущую форму, используя [lead-form id = "574" ] - в этом примере 574 - это идентификатор ведущей формы. Когда это добавляется на страницу, я использую конкретный шаблон для целевых страниц, содержащих ведущие формы.Передача значения атрибута Wordpress ShortCode шаблону

Есть поля в настраиваемом типе сообщений, которые мне нужно получить в шаблоне, но для доступа к ним сначала нужен идентификатор ведущей формы. Я включил некоторые скриншоты, которые, я надеюсь, прояснят это немного лучше.

Свинцовые формы централизованно управляются в пользовательский тип записи, в этом примере, 574 Идентификатор таможенный пост

enter image description here

Код для shordcode захватывает идентификатор с помощью while(have_rows('pages', $atts['id'])): the_row(); полей, используемых для пользовательский тип сообщения является повторителем страниц, который имеет повторитель вопросов, который имеет повторитель предопределенных вариантов. Эти поля создаются с использованием плагина Advanced Custom Fields. Штрих-код в основном перебирает страницы/вопросы/ответы и строит строку, которая возвращает короткий код. При добавлении короткого кода на страницу я указываю шаблон в разделе «Атрибуты страницы», поэтому я могу включить некоторые стили и javascript.

enter image description here

шаблон-свинцово-form.php является файлом, используемым для «LP Lead Form» Строка, которая построена в шорткоде выводится в the_content(), однако, есть два поля, которые я нужно получить доступ к тому, что я могу получить, только передав Id в ведущую форму.

enter image description here

ответ

1

Я бы искать для вашего шорткода в post_content и получить идентификатор оттуда. Regex не моя сильная сторона, но, вероятно, что-то вроде этого:

preg_match('/\[load-form [^\]]*id="([0-9]*)"\]/', $post->post_content, $res); 

После этого нужно иметь идентификатор в $ Рез [1].

+0

Да, это нашло его, спасибо. Это мой первый проект WP, поэтому я чувствую себя noob ... – Neil

Смежные вопросы