Я хочу «переопределить» шорткод «галереи» по умолчанию (WordPress), но только если я использовал заданный параметр для этого шорткода галереи.
Например:
[gallery ids="1,2,3"]
У него нет параметра, поэтому он выведет стандартный код галереи.
[gallery mode="custom" ids="1,2,3"]
У него есть мой параметр "mode", поэтому он выведет другой шорткод.
Для этого я создал короткий код "галереи" в файле functions.php:
function get_new_gallery( $atts ) {
extract( shortcode_atts( array(
'mode' => '',
'ids' => '',
), $atts ) );
$code ="";
if ($mode == "custom") {
//* Output custom shortcode
$code = '[custom_gallery ids="' . $ids . '"]';
} else {
//* Need to do nothing...but don't know how to do it
$code = '[gallery ids="' . $ids . '"]'; /* Here's the problem, it causes a loop */
}
return do_shortcode($code);
}
add_shortcode( 'gallery', 'get_new_gallery' );
Он отлично работает, когда я использую параметр mode = "custom".Он просто выводит новый шорткод: [custom_gallery ...]
Однако, если параметр не используется, он прерывается, потому что входит в бесконечный цикл .В коде есть комментарий со строкой, которая разбивает его.
Я хочу выполнить стандартный шорткод «галерея», если не введен ни один параметр.Но учитывая, что я перезаписал это ... не знаю, как "вырезать" из цикла и просто выполнить галерею.
Любая помощь?
Заранее спасибо.