使用Themify Builder启用“wp_Gallery_Custom_Links”插件时显示警告

时间:2017-04-18 作者:Tejas Dixit

当我将此插件安装到我的一个使用Themify Builder的站点时,它显示以下错误。

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘wp_gallery_custom_links’ not found or invalid function name in /home/content/xxxxx/wp-includes/class-wp-hook.php on line 298
您或任何人以前是否遇到过此错误?有什么快速的解决方案吗?

此外,我检查了Themify,发现他们在兼容文件中添加了插件代码,如下所示。

    // WP Gallery Custom Links
if( $this->is_plugin_active( \'wp-gallery-custom-links/wp-gallery-custom-links.php\' ) ) {
add_filter( \'themify_builder_image_link_before\', \'wp_gallery_custom_links\', 10, 3 );
}

function wp_gallery_custom_links( $link_before, $image, $settings ) {
        $attachment_meta = get_post_meta( $image->ID, \'_gallery_link_url\', true );
        if( $attachment_meta ) {
            $link_before = preg_replace( \'/href="(.*)"/\', \'href="\' . $attachment_meta . \'"\', $link_before );
        }
        $attachment_meta = get_post_meta( $image->ID, \'_gallery_link_target\', true );
        if( $attachment_meta ) {
            $link_before = str_replace( \'>\', \' target="\' . $attachment_meta . \'">\', $link_before );
        }

        return $link_before;
    }
请对此进行调查,并尽快让我知道解决方案。

谢谢

1 个回复
SO网友:Tejas Dixit

通过直接在“/wp-content/themes/themify-ultra/themify/themify-builder/templates/template-gallery-grid.php”中进行更改,我最终解决了这个问题。

尝试查找下面的行。

$link_before = \'\' != $link ? sprintf( \'\', esc_attr( $image->post_title ), esc_url( $link ) ) : \'\';
$link_before = apply_filters( \'themify_builder_image_link_before\', $link_before, $image, $settings );
并替换为,

$custom_link = get_post_meta( $image->ID, \'_gallery_link_url\', true );
$custom_link_target = get_post_meta( $image->ID, \'_gallery_link_target\', true );
if($custom_link){
   $link = $custom_link;
}
$link_before = \'\' != $link ? sprintf( \'\', esc_attr( $image->post_title ), esc_url( $link ), $custom_link_target ) : \'\';
//$link_before = apply_filters( \'themify_builder_image_link_before\', $link_before, $image, $settings );
谢谢

相关推荐

更改wp-admin/plugins.php上统计的插件数量

我已成功地使用从插件页面隐藏我的插件$wp_list_table 然而,顶部的分页仍然将插件列为“所有(3)”等。我成功地改变了$wp_list_table 的数组_pagination_args = total_items.但它仍然在页面顶部呈现插件-“全部(3)”。有什么办法可以解决这个问题吗?我找到了WP_Plugins_List_Table::prepare_items()具有全局$totals 变量,但我不确定我将如何改变这一点,在这个函数中$totals = array(); fore