Пользовательские короткие коды, не работающие с использованием темы __s

Я пытаюсь зарегистрировать новый shortcode в моей настраиваемой теме.

В functions.php я создал базовую тестовую функцию следующим образом

function get_second_image($atts) { echo 'test'; } 

И зарегистрировал его прямо под

 add_shortcode( 'case_study_second_image_sc', 'get_second_image' ); 

Используя редактор WYSIWYG, я вставляю короткий код [case_study_second_image_sc], но он просто отображается как необработанный код на странице.

Я вызываю содержимое страницы, используя

 <?php the_content(); ?> 

в файле шаблона.

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

Обязательно используйте прямые кавычки, например « или », а не фигурные кавычки » , « , » или « для строк ».

Кроме того, короткие коды должны возвращать свой вывод, а не эхо.

Когда WordPress находит короткий код без обратного вызова, он отображает тег [case_study_second_image_sc] как только он был введен, например [case_study_second_image_sc] .

Тег 'case_study_second_image_sc' и связанный обратный вызов 'get_second_image' будут анализироваться как константы PHP. Это означает, что у нас не будет действительного тега shortcode или функции обратного вызова для нашего короткого кода, и WP просто выдает короткий код, как он был введен пользователем.

Включение отчетов об ошибках помогает найти эти сложные ошибки (иногда фигурные кавычки появляются в скопированном / вставленном коде, и в некоторых редакторах бывает сложно отличить цитаты).

 Use of undefined constant 'case_study_second_image_sc' - assumed ''case_study_second_image_sc'' Use of undefined constant 'get_second_image' - assumed ''get_second_image'' 

См. Документацию https://codex.wordpress.org/Shortcode_API . Ваша функция должна вернуть значение, которое вы хотите заменить коротким кодом. « echo » ничего не отображает. Вам нужно return 'test' ; вставить текст « test » в контент.

Из документов в приведенной выше ссылке (выделено мной):

Когда отображается значение_content, API-интерфейс короткого кода будет анализировать любые зарегистрированные короткие коды, такие как «[myshortcode]», разделить и проанализировать атрибуты и содержимое, если они есть, и передать им соответствующую функцию обработчика коротких сообщений. Любая строка, возвращаемая ( не эхом ) обработчиком коротких кодов, будет вставлена ​​в тело сообщения вместо самого короткого кода.

Надеюсь это поможет.