Intereting Posts
Вставьте wp_query после the_content с плагином (фильтр the_content не будет работать) Вывод dynamic_sidebar_params в wp_head Вход в cookie через несколько доменов в сети с отображением Ошибки компиляции при компиляции перевода Показать сообщения за кварталом remove_action или remove_filter с внешними классами? Создайте специальное слайд-шоу WordPress с "jquery.cycle.all.js" Пользовательский текстовый заголовок Получите сообщение meta после вставки сообщения Медленный запрос при подключении wp_posts с помощью таблицы поиска? Добавление определенного содержимого страницы с одной страницы на другую автоматически Автоматически включать пользовательскую тему, плагины и содержимое по умолчанию при установке? Удалить «? Add-to-cart = product-id» из URL-адреса «Добавить в корзину», когда на странице «Корзина» отображать пользовательский тип сообщения в виджетах aera Многофакторная цена для продуктов WordPress woocommerce

Отладка коротких проблем

Я пытаюсь получить некоторые из коротких коротких кодов, работающих на моем сайте. В частности, я хотел бы использовать короткие коды страниц: [list-pages], [child-pages], [sibling-pages]. Я использую ребенка из двадцати двенадцати с минимальными изменениями в шаблоне (изменения фона и шрифта).

Вот текущее поведение, при этом все мои плагины сохраняются при отключении Jetpack и akismet, поэтому короткие коды, такие как [youtube] и [archives], отображаются правильно. Я также могу создать короткий код в моем файле functions.php :

 function test_shortcode() {return 'Working';} add_shortcode('test_shortcode', 'test_shortcode'); 

Это работает правильно. Однако использование любого из коротких кодов страниц возвращает только короткий код в скобках. На моем веб-сайте в настоящее время содержатся тестовые страницы (2 родителя, один ребенок).

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

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

Как сказал @Milo, wordpress.com – это платформа сама по себе, и все, что доступно на wordpress.com, доступно только для сайтов, размещенных на wordpress.com. Плагин jetpack, однако, делает некоторые функции доступными для самостоятельных сайтов, но я не особо уверен, какие из них.

Штрих-коды, о которых вы говорите, доступны только на сайтах, размещенных на wordpress.com, а не на самих размещенных сайтах.

Я быстро переписал сценарий, который я недавно сделал, чтобы искать фильтры и действия в WordPress, чтобы получить все короткие коды для самостоятельных сайтов. Вот функция

 function get_all_filters_and_actions2( $path = '' ) { //Check if we have a path, if not, return false if ( !$path ) return false; // Validate and sanitize path $path = filter_var( $path, FILTER_SANITIZE_URL ); /** * If valiadtion fails, return false * * You can add an error message of something here to tell * the user that the URL validation failed */ if ( !$path ) return false; // Get each php file from the directory or URL $dir = new RecursiveDirectoryIterator( $path ); $flat = new RecursiveIteratorIterator( $dir ); $files = new RegexIterator( $flat, '/\.php$/i' ); if ( $files ) { $output = ''; $array = []; foreach($files as $name=>$file) { /** * Match and return all instances of apply_filters(**) or do_action(**) * The regex will match the following * - Any depth of nesting of parentheses, so apply_filters( 'filter_name', parameter( 1,2 ) ) will be matched * - Whitespaces that might exist between apply_filters or do_action and the first parentheses */ // Use file_get_contents to get contents of the php file $get_file_contents = file( $file ); foreach ( $get_file_contents as $key=>$get_file_content ) { preg_match_all( '/add_shortcode\s*(\([^()]*(?:(?-1)[^()]*)*+\))/', $get_file_content, $matches ); if ( $matches[0] ) $array[$name][$key+1] = $matches[0]; } } if ( $array ) { foreach ( $array as $file_name=>$values ) { $output .= '<ul>'; $output .= '<strong>File Path: ' . $file_name .'</strong></br>'; $output .= 'The following shortcodes are available'; foreach ( $values as $line_number=>$string ) { $whitespaces = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; $output .= '<li>Line reference ' . $line_number . $whitespaces . $string[0] . '</li>'; } $output .= '</ul>'; } } return $output; } return false; } 

Поскольку все короткие коды, доступные для интерфейса, должны быть в файле wp-includes , мы можем запустить функцию следующим образом: ( ПРИМЕЧАНИЕ. Я тестировал это на localhost)

 echo get_all_filters_and_actions2( 'E:\xampp\htdocs\wordpress/wp-includes/' ); 

выход

 File Path: E:\xampp\htdocs\wordpress/wp-includes\class-wp-embed.php The following shortcodes are available Line reference 31 add_shortcode( 'embed', '__return_false' ) Line reference 60 add_shortcode( 'embed', array( $this, 'shortcode' ) ) File Path: E:\xampp\htdocs\wordpress/wp-includes\media.php The following shortcodes are available Line reference 1379 add_shortcode('wp_caption', 'img_caption_shortcode') Line reference 1380 add_shortcode('caption', 'img_caption_shortcode') Line reference 1490 add_shortcode('gallery', 'gallery_shortcode') Line reference 2021 add_shortcode( 'playlist', 'wp_playlist_shortcode' ) Line reference 2270 add_shortcode( 'audio', 'wp_audio_shortcode' ) Line reference 2525 add_shortcode( 'video', 'wp_video_shortcode' ) File Path: E:\xampp\htdocs\wordpress/wp-includes\shortcodes.php The following shortcodes are available Line reference 59 add_shortcode( 'footag', 'footag_func' ) Line reference 72 add_shortcode( 'bartag', 'bartag_func' ) Line reference 80 add_shortcode( 'baztag', 'baztag_func' ) Line reference 89 add_shortcode($tag, $func) 

Поскольку короткие коды, выбранные функцией в wp-includes\shortcodes.php являются только сэмплами в комментариях, мы действительно имеем только следующие короткие коды, доступные по умолчанию на сайтах с самообслуживанием

  • [caption]

  • [gallery]

  • [playlist]

  • [audio]

  • [video]

  • [embed]

( ПРИМЕЧАНИЕ: это как в WordPress 4.4)