Функция возврата Wordpress в шорткоде, отображающая верхнюю часть страницы

Я пытаюсь использовать шорткод для отображения формы Ultimate Member, проблема заключается в том, что вывод шорткода всегда отображается вверху страницы, а не там, где я разместил шорткод.

Я думаю, что он выводит acf_form(settings) сразу после вызова шорткода и не возвращает его.

function op_profile_skills_func (){
    $form = acf_form($settings);
    return $form; 
}
add_shortcode('op_profile_skills', 'op_profile_skills_func');

Не уверен, что я делаю неправильно, есть мысли? Я пробовал эхо.


person John Jones    schedule 19.02.2021    source источник


Ответы (1)


Как вы и предполагали, функция печатает форму, а не возвращает ее.

Что вы можете сделать, так это захватить вывод с помощью выходного буфера:

function op_profile_skills_func (){
    ob_start();
    acf_form($settings);
    $form = ob_get_clean();
    return $form; 
}

Все, что отображается или печатается между start и clean, будет собрано и передано в $form.

person bug    schedule 20.02.2021
comment
Ваше здоровье!!!!! Сработало очарование! Спасибо еще раз! - person John Jones; 20.02.2021