Intereting Posts
WP-PageNavi дает мне 404 при использовании WP Query Защита электронной почты от спама с помощью перенаправления php Как добавить текстовое поле в действие texarea? функция meta box & callback Подсчет сообщений типа заданного типа с определенной таксономией? Codex: Database Описание: значение кардинальности Новый пользовательский nev не работает Отключение сочетаний клавиш TinyMCE в целом Отобразить все пользовательские типы сообщений в файле archives.php Как предотвратить дублирование сообщений при просмотре пользовательского таксономического термина wp_get_object_terms (): считать относительно переданных идентификаторов? добавить другой файл таблицы стилей для редактирования списка файлов тем Подключаемый крючок при добавлении нового автора Обновление пользовательского поля WordPress с помощью AJAX на кешированной странице Запретить загрузку изображений, если не требуется точный размер

Shortcode не показывает ничего

Я использую этот код, но на первой странице ничего не отображается. Кажется, что shortcode зарегистрирован правильно, хотя.

function choose_ashtopbar() { ?><img src="/images/flag_globe2.png" class="ttupmg" /><div class="dmzeus"><ul><li class="f-selection">London<ul><li>New York</li><li>Paris</li><li>Milan</li></ul></li></ul></div><?php } function register_ashcodes(){ add_shortcode('ashtopbar', 'choose_ashtopbar'); } add_action( 'init', 'register_ashcodes'); 

Solutions Collecting From Web of "Shortcode не показывает ничего"

Как упоминалось в комментариях к birgire , «вам не хватает части return », на которую вы ответили «как я могу добавить это, не избегая кода HTML?»

EDIT : Просто разъяснение. Ваш код должен был работать, как указано в dswebsme. Я просто тестировал с возвратом и без него, и оба работают (хотя возвращение было бы предпочтительным). Следующий вопрос: вы правильно помещаете свой тег короткого кода в свой контент? например [ashtopbar/] ? и это не написано неправильно, не так ли?

Оставляя раздел о heredoc в любом случае:

В PHP у вас есть несколько способов получить сложные данные (включая HTML) в строковой переменной. В вашем случае я бы использовал синтаксис heredoc PHP , поскольку вы можете поместить практически что-нибудь внутри него и не должны избегать синтаксиса:

 <?php function choose_ashtopbar() { $html = <<<HTML <img src="/images/flag_globe2.png" class="ttupmg" /> <div class="dmzeus"> <ul> <li class="f-selection">London <ul> <li>New York</li> <li>Paris</li> <li>Milan</li> </ul> </li> </ul> </div> HTML; return $html; } function register_ashcodes(){ add_shortcode('ashtopbar', 'choose_ashtopbar'); } # I'm guessing init has already run by this point # add_action( 'init', 'register_ashcodes'); # Use a different hook or just register your code register_ashcodes(); 

По сути, ваш исходный код просто add_shortcode HTML, когда add_shortcode запускал функцию choose_ashtopbar , что, вероятно, не то, что вы хотели.

Почему вы используете все это. Не можете ли вы просто определить add_shortcode с помощью add_shortcode ? Вот функция.

Также да, вам не хватает return в вашей функции. Законченный код здесь.

 function choose_ashtopbar( $atts, $content ) { return '<img src="/images/flag_globe2.png" class="ttupmg" /><div class="dmzeus"><ul><li class="f-selection">London<ul><li>New York</li><li>Paris</li><li>Milan</li></ul></li></ul></div>'; } add_shortcode( 'ashtopbar', 'choose_ashtopbar' ); 

Ваш код работает должным образом. Две вещи, которые вам нужно проверить:

1) Для того, чтобы короткие коды отображались как ожидалось, вам нужно использовать the_content () в цикле или обернуть ваш контент в apply_filters (), как показано здесь:

 echo apply_filters('the_content', $my_content); 

Помощник apply_filters () сообщает WordPress анализировать содержимое перед его визуализацией, разрешая такие вещи, как короткие коды, разрывы строк и т. Д. Внутри цикла функция__content () автоматически обрабатывает вызов apply_filters ().

2) Убедитесь, что вы очистили серверную или локальную кеш-память, которая может быть на месте во время отладки, чтобы вы могли видеть свои изменения по мере их создания.