php 强制WordPress库使用媒体文件链接而不是附件链接

92vpleto  于 2023-02-07  发布在  PHP
关注(0)|答案(3)|浏览(155)

是否有一个过滤器或挂钩,以迫使WordPress画廊使用媒体文件链接,而不是附件链接。我不能相信我的客户手动切换设置,而创建画廊。http://cl.ly/image/2g1L1G2c2222
提出另一个问题,即为什么媒体文件不是默认类型。

tktrz96b

tktrz96b1#

你基本上可以覆盖默认的图库简码。

remove_shortcode('gallery', 'gallery_shortcode'); // removes the original shortcode
    add_shortcode('gallery', 'my_awesome_gallery_shortcode'); // add your own shortcode

    function my_awesome_gallery_shortcode($attr) {
    $output = 'Codex is your friend' ;
    return $output;
}

在自定义函数里面你可以设置任何你想要的...看看原来的图库简码。
另一种方法是实际过滤属性(如果你将转到上面的链接,你会看到一个过滤钩子)

add_shortcode( 'gallery', 'my_gallery_shortcode' );

function my_gallery_shortcode( $atts )
{
    $atts['link'] = 'file';
    return gallery_shortcode( $atts );
}
ghg1uchk

ghg1uchk2#

Obmerk Kronen的回答非常简洁,适用于大多数情况。然而,最近我在我的一个客户的网站上遇到了一个问题,这个问题无法通过这种方式解决。我实际上不知道为什么。我想这是因为另一个图库插件,篡改了相同的短代码。
所以,我找到了一个不同的解决方案,不是那么简洁,但很有效。在这里,也许有人会觉得这个很有帮助:

add_filter('the_content','galleries_attachments_to_media_links');
function galleries_attachments_to_media_links( $content ) {
/**
 * Overrides gallery shortcode settings and forces media file loading, if gallery set to attachment link
 */
if(strpos($content,'[gallery') !== FALSE) {
    $content = str_replace('[gallery','[gallery link="file"',$content);
    return $content;
}
else return $content;
}

它看起来像即使画廊已经设置为媒体文件,这不是一个问题,WordPress执行的短代码正确。

1qczuiv0

1qczuiv03#

我有同样的问题很长一段时间,我找到了解决方案。在function.php文件中,我有:

update_option( 'image_default_link_type', 'media' );

值可以是“无”、“文件”或“媒体”。如果有帮助的话,它对我来说很好用。

相关问题