WP过滤器可更改包装最后一个图库图像的锚点的URL

时间:2021-02-17 作者:SRDMH

我们有一个普通的WordPress图库development webpage.

enter image description here

该页面是通过高级自定义字段自定义的内容,我们将上述部分的内容包装如下:

<?php
  $content = get_sub_field(\'wysiwyg\');
  if ( function_exists(\'slb_activate\') ) {
    $content = slb_activate($content);
  }
  echo $content;
?>
灯箱功能由以下内容生成:Simple Lightbox, 和slb_activate 是该插件的一个功能,它将lightbox功能添加到ACF内容中的任何库中。

设计师希望图库中的最后一幅图像(紫色图像)链接到另一个WordPress页面,同时维护图库其余部分的灯箱功能。

我不知道我们是否需要一个WordPress过滤器slb_activate 函数或某些jQuery和目标.gallery-item:last-of-type, 是否用新URL替换URL?

如果是这样,我们想从https://herodevelopment.com.au/allbathroomgear/design-build/bathrooms/ 并使用此slug生成https://herodevelopment.com.au/allbathroomgear/album/bathrooms/

(因此/design-build/bathrooms//album/bathrooms/ 在最终制作网站上)。

我很感激任何帮助,因为我不幸不是一个开发人员。

2 个回复
最合适的回答,由SO网友:Andre Verona 整理而成

通过javascript,您应该用新的链接替换最后一个项目上的链接,并将标记的属性data slb active更改为;0英寸;。请使用以下javascript。

jQuery(“gallery-1。gallery项:类型a的最后一个”)。属性;https://herodevelopment.com.au/allbathroomgear/album/bathrooms/";)。属性(“数据slb活动”、“0”);

SO网友:KAGG Design

将代码替换为以下内容:

<?php
$content = get_sub_field( \'wysiwyg\' );
if ( function_exists( \'slb_activate\' ) ) {
    $url_request = isset( $_SERVER[\'REQUEST_URI\'] ) ?
        filter_var( wp_unslash( $_SERVER[\'REQUEST_URI\'] ), FILTER_SANITIZE_STRING ) :
        \'\';
    $url_path    = wp_parse_url( $url_request, PHP_URL_PATH );
    $url_path    = preg_replace( \'#/.+/(.+)/#\', \'/album/$1/\', $url_path );
    $content     = str_replace( \'/wp-content/uploads/2021/02/gallery-thumb.jpg\', $url_path, $content );
    $content     = slb_activate( $content );
}
echo $content;
?>

相关推荐

页脚中的jQuery 3.5.1出现问题

我的Wordpress安装版本是5.6版和Jquery 3.5.1版。Wordpress Gallery块支持指向媒体图像大文件的链接,但该链接会在相同的窗口中打开图像。我通常使用Fancybox类来<;a>;标记以在弹出窗口中打开大图像(a href=“big image.jpg”class=“fancybox”…)。block gallery不支持类链接,因此我编写了一个JQuery脚本并将其放在页脚中,以将类添加到库的href图像中。脚本启动ad文档。准备好的以下是脚本:jQuery(doc