Как передать параметры В шорткод?
Я видел статьи о том, как добавлять параметры в шорткоды, чтобы можно было использовать что-то вроде [my-shortcode post_id=7]
, чтобы передать ID записи в шорткод.
Допустим, у меня есть форма на странице, и пользователь вводит что-то или выбирает что-то, и на основе этого я хочу обновить контент, представленный шорткодом, используя параметры, предоставленные пользователем.
Как этого добиться?

Допустим, у вас есть форма, которая отправляет данные следующим образом:
<form method="post" name="car-select" action="<?php echo site_url('/my-page/'); ?>">
<select name="make">
<option value="benz">Mercedes-Benz</option>
<option value="bmw">BMW</option>
<option value="audi">Audi</option>
</select>
<input type="submit" value="Найти машину мечты!"/>
</form>
Теперь вы хотите выполнить запрос к записям на основе выбора пользователя, верно? Вот где пригодится $_POST
:
add_shortcode('my-shortcode','my_shortcode_function');
function my_shortcode_function($atts){
// Получаем ID из шорткода
$id = $atts['post_id'];
// Проверяем, были ли отправлены данные формы
if (isset($_POST['make']) && $id){
$car_manufacturer = $_POST['make'];
// Теперь у вас есть данные формы. Делайте с ними что угодно
return $my_shortcode_values;
}
}
Вам нужно расширить этот код в соответствии с вашими потребностями, например, определить, что делать, если данные формы не были отправлены.

Стоит отметить, что если вы используете $_GET вместо этого. Значение останется даже если пользователь обновит страницу (F5).
if (isset($_GET ['make']) && $id){
$car_manufacturer = $_GET ['make'];
// Теперь у вас есть данные формы. Делайте с ними что угодно
return $my_shortcode_values;
}
