Вывод содержимого WordPress Shortcode в текст и нижний колонтитул - PullRequest
0 голосов
/ 14 июня 2019

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

Шорткод выглядит следующим образом:

[term value="Custom Link Title" id="123"]

Аргумент value="" предназначен для модальной ссылки в содержимом.id="" - это идентификатор пользовательского типа сообщения.

Внутри модального диалогового окна я отображаю содержимое из пользовательского типа сообщения на основе его идентификатора.

Проблема в том, чтоссылка и модальный диалог выводятся вместе.И из-за <div> модального, WordPress закрывает каждый <p> перед ним.И теперь есть нежелательный разрыв строки после модальной ссылки.

Есть ли способ отобразить модальную ссылку в области содержимого и поместить модальный диалог (<div>) в нижний колонтитулстраницы?

Вот мой короткий код:

add_shortcode('btn', 'bs_button');

// [term value="" id=""]
function shortcode_term($atts) {
   extract(shortcode_atts(array(
      'id' => '',
      'value' => '',
   ), $atts));


$modal_term = '<a href="#termModal_'.$id.'" class="" data-toggle="modal" data-target="#termModal_'.$id.'">'.$value.'</a>';

$modal_dialog = '<div class="modal fade" id="termModal_'.$id.'" tabindex="-1" role="dialog" aria-labelledby="termModal_'.$id.'_Title" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="termModal_'.$id.'_Title">'.get_the_title($id).'</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="icon-remove"></i></button>
            </div>
            <div class="modal-body">
                '.get_post_field('post_content', $id).'
            </div>
        </div>
    </div>
</div>';

return $modal_term.$modal_dialog;

}

add_shortcode('term', 'shortcode_term');

Было бы неплохо, если бы $modal_term оставалось в содержании, а $modal_dialog переходило в нижний колонтитул страницы.

Или есть ли другой способ запретить WordPress добавлять </p> перед модальным диалогом?

Вот что происходит в интерфейсе:

<p style="text-align: center;">noraml text from the editor <a href="#termModal_123" class="" data-toggle="modal" data-target="#termModal_123">Custom Link Title</a></p>
<div class="modal fade" id="termModal_123" tabindex="-1" role="dialog" aria-labelledby="termModal_123_Title" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="termModal_123_Title">Term Title</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><i class="icon-remove"></i></button>
            </div>
            <div class="modal-body">
                <h2>Head</h2>
                Term Content
            </div>
        </div>
    </div>
</div>
Rest of the normal Text from the editor

</p> после <a href="">..</a> там не может быть.

...