Intereting Posts
Странные коды на моем сайте WordPress и мой сайт работают слишком медленно Сохранять эскизы и закачки в разных каталогах? Фильтр категории WordPress edit.php, чтобы показывать только сообщения из прямой категории, а не сообщения из него. получить заголовок родительских полей, выдержку содержимого и т. д. Пользовательское поле / мета, заполненное раскрывающимся списком существующих сообщений? Имя пользовательского меню и название категории связаны в WordPress? Почему dbDelta () не улавливает MysqlErrors? WP API: параметр date_query Как добавить Редактировать | Удалить кнопку в строках? AJAX загружает больше сообщений, не используя правильную категорию, и повторяет те же самые сообщения Пользовательский часовой пояс Почему WordPress перенаправляется, когда я разделяю wp-core и wp-контент? Почему сообщения WordPress не иерархичны? Отдельный вывод массива в <ul> Настройка внешнего интерфейса на основе postmeta, не загружающего перевод

Изменение WordPress Shortcode добавлено в сообщение

Проблема: я использую плагин, который превращает галерею wordpress в классное слайд-шоу.

Как всегда, каждый раз, когда я делаю галерею – WordPress, добавьте этот код в сообщение.

[галерея ids = "334,332"]

Мне нужно, чтобы это было так –

[wp-slideshow include = "334,332"]


Может быть полезно: я думаю, что это файл, управляющий выходом?

http://core.trac.wordpress.org/browser/tags/3.0.1/wp-includes/media.php#L745

Solutions Collecting From Web of "Изменение WordPress Shortcode добавлено в сообщение"

remove_shortcode( 'gallery' ); add_shortcode( 'gallery', function( $atts ) { $atts = shortcode_atts( array( 'ids' => '' ), $atts ); return do_shortcode( "[wp-slideshow include=\"$atts[ids]\"]" ); } );

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

Решение MagentaCuda является простым решением и должно функционировать адекватно. Тем не менее, он запускает довольно сложное регулярное выражение shortcode дважды, плюс дополнительная обработка do_shortcode() . Оба следует избегать.

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

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

 // The callback for the wp-slideshow shortcode // I don't know the real function name function plugin_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'include' => '' ), $atts ); var_dump($atts); } add_shortcode('wp-slideshow','plugin_gallery_shortcode'); // This is a callback we are using to hijack the Core gallery function convert_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'ids' => '' ), $atts ); $atts['include'] = $atts['ids']; unset($atts['ids']); plugin_gallery_shortcode($atts,$content); } // only hijack if the plugin gallery callback exists if (function_exists('plugin_gallery_shortcode')) { add_shortcode('gallery','convert_gallery_shortcode'); } - // The callback for the wp-slideshow shortcode // I don't know the real function name function plugin_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'include' => '' ), $atts ); var_dump($atts); } add_shortcode('wp-slideshow','plugin_gallery_shortcode'); // This is a callback we are using to hijack the Core gallery function convert_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'ids' => '' ), $atts ); $atts['include'] = $atts['ids']; unset($atts['ids']); plugin_gallery_shortcode($atts,$content); } // only hijack if the plugin gallery callback exists if (function_exists('plugin_gallery_shortcode')) { add_shortcode('gallery','convert_gallery_shortcode'); } не // The callback for the wp-slideshow shortcode // I don't know the real function name function plugin_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'include' => '' ), $atts ); var_dump($atts); } add_shortcode('wp-slideshow','plugin_gallery_shortcode'); // This is a callback we are using to hijack the Core gallery function convert_gallery_shortcode( $atts, $content = null ) { $atts = shortcode_atts( array( 'ids' => '' ), $atts ); $atts['include'] = $atts['ids']; unset($atts['ids']); plugin_gallery_shortcode($atts,$content); } // only hijack if the plugin gallery callback exists if (function_exists('plugin_gallery_shortcode')) { add_shortcode('gallery','convert_gallery_shortcode'); }