WordPress некорректно отображается шорткод - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь повторить что-то подобное, используя короткий код wordpress:

<a href="some/link.html><div class="rhinoButton">Submit</div></a>

Я использую этот код для создания шорткода:

function rhino_button_shortcode( $atts) {
    $atts = shortcode_atts(
        array(
            'label' => 'Submit',
            'url' => '',
        ), $atts, 'rhinoButton' );

    return '<a href="'.$atts['url'].'"><div class="rhinoButton">'.$atts['label'].'</div></a>';
}

add_shortcode('rhinoButton', 'rhino_button_shortcode');

Но вместо этого он выдает:

<div class="rhinoButton"><a href="some/link.html>Submit</a></div>

Это вложение <a> внутри </div> (назад).

Я слышал, что это может произойти, если вы эхо, а не возвращение, но я не. Я также пробовал буферизацию вывода с ob_start и ob_get_clean, но безуспешно.

Что я делаю не так?

1 Ответ

0 голосов
/ 10 мая 2018

Я добавил ваш код в файл function.php своей темы и протестировал этот шорткод

[rhinoButton url="https://www.google.com"]

Это породило следующее:

<a href="https://www.google.com"><div class="rhinoButton">Submit</div></a>

Я захватил это из источника страницы в браузере.

Итак, ваш код работает, как и ожидалось, на моей установке WordPress 4.9.5 с темой Twenty Sixteen. Я думаю, что какая-то тема или плагин, который вы установили, добавляет фильтр 'the_content' с приоритетом> 11.

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

...