Добавление формы в конце содержания

Я пытаюсь добавить немного формы после каждого сообщения для плагина, который я должен кодировать, но я не очень знаком с Wordpress. При помощи add_action с the_content как рычаг я смог добавить некоторый текст к содержанию.

Моя проблема состоит в том, что целый текст, сохраненный в переменной $content, казалось, был обработан так или иначе. А именно, существует br / добавлен после каждого из моих полей ввода, которые повреждают расположение моей формы. Я заметил, что у меня нет этой проблемы, если я имел свое право формы перед формой комментария, например. Но я не хочу помещать свою форму здесь, мне нужна она, чтобы быть действительно сразу после самого сообщения до чего-либо связанного с комментариями.

Существует ли способ отключить этот текст и форматирование HTML, но только для формы я буду добавлять к содержанию? В случае, если нет никакого простого способа сделать так, я попытался найти рычаг, который позволил бы мне добавлять что-то ПОСЛЕ содержания и ПЕРЕД комментариями, чтобы сделать так, но не имел никакой удачи при нахождении один. Есть ли такой рычаг?

1
30.11.2012, 14:15
2 ответа

Вы на самом деле захотите filter содержание, не используют действие. Вы могли перенести свою форму в буфер вывода и добавить его на к нему, как так:

function my_content_filter($content) {
    ob_start(); 

    // your form here

    $form = ob_get_clean();

    if (get_post_type() == 'post')
        return $content . $form;

    return $content;
}
add_filter('the_content', 'my_content_filter');

Сообщите мне, помогает ли это.

0
19.02.2020, 23:31

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

add_filter('the_content','your_callback',100);

Если это не делает этого, Вам, вероятно, придется удалить и переупорядочить немного некоторые фильтры.

Если это - страница, и можно отредактировать шаблон для той страницы, Вы могли также работать get_the_content, примените фильтры контента к нему, затем добавьте свою форму перед Вами echo.

$content = get_the_content();
$content = apply_filters('the_content',$content);
$content = $content.$your_form;
echo $content;
0
19.02.2020, 23:31

Теги

Похожие вопросы