如果有给定参数,则覆盖图库简码(WordPress)

时间:2018-10-10 18:59:26

标签: wordpress gallery

我想“覆盖”默认的“画廊”短代码(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 ...]

但是,当不使用参数时,它会因为进入无限循环而中断。在代码中,带有注释的行将其中断。

如果没有输入参数,我要执行标准的“画廊”短代码。但是鉴于我已经覆盖了它……不知道如何从循环中“逃脱”而只是执行图库。

有帮助吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

也许其他方法可以帮助您?画廊短代码上的过滤器呢?请参阅参考资料: https://codex.wordpress.org/Plugin_API/Filter_Reference/post_gallery

和:

https://wpbeaches.com/filtering-gallery-image-output-wordpress/