How to filter link?

时间:2017-07-22 作者:jrcollins

我已经安装了一个显示自定义小部件的插件,我正在尝试添加一个简单的过滤器来更改target 链接中的属性_blankself.

这是我试图修改的代码:

<?php
                        $link   = "<a href=\'{$affiliate_link}\' 
rel=\'nofollow\' target=\'_blank\' class=\'wppr-bttn\'>" . __( 
$instance[\'cwp_tp_buynow\'], \'cwppos\' ) . \'</a>\';
                    if ( ! empty( $instance[\'cwp_tp_buynow\'] ) ) {
                        echo apply_filters( 
\'wppr_widget_style1_buynow_link\', $link, get_the_ID(), $affiliate_link, 
$instance[\'cwp_tp_buynow\'] );
                    }

                        $link   = "<a href=\'{$review_link}\' rel=\'nofollow\' 
target=\'_blank\' class=\'wppr-bttn\'>" . __( $instance[\'cwp_tp_readreview\'], 
\'cwppos\' ) . \'</a>\';
                    if ( ! empty( $instance[\'cwp_tp_readreview\'] ) ) {
                        echo apply_filters( 
\'wppr_widget_style1_readreview_link\', $link, get_the_ID(), $review_link, 
$instance[\'cwp_tp_readreview\'] );
                    }
                    ?>
代码显示2个按钮。这是我想修改的第二个(阅读评论)链接。

我尝试了以下代码,但它导致我的网站崩溃:

add_filter( \'wppr_widget_style1_readreview_link\', \'review_link_custom\' );

function review_link_custom( $link, get_the_ID(), $review_link, 
$instance[\'cwp_tp_readreview\'] ) {
$link   = "<a href=\'{$review_link}\' rel=\'nofollow\' target=\'_self\' 
class=\'wppr-bttn\'>" . __( $instance[\'cwp_tp_readreview\'], \'cwppos\' ) . 
\'</a>\';
return $link;
}

1 个回复
最合适的回答,由SO网友:kero 整理而成

您的PHP无效(从PHP错误日志中可以明显看出这一点)。

function review_link_custom( $link, get_the_ID(), $review_link, $instance[\'cwp_tp_readreview\'] ) {
函数既不能有其他函数,也不能有数组+键作为参数,只能为传递的参数指定名称。此外,在添加过滤器时,您必须指定传递给它的参数数量(默认值为2-您有4个,因此需要显式指定)。试试这样吧

add_filter( \'wppr_widget_style1_readreview_link\', \'review_link_custom\', 10, 4 );
function review_link_custom( $link, $id, $review_link, $cwp_tp_readreview ) {
    $link   = "<a href=\'{$review_link}\' rel=\'nofollow\' target=\'_self\' class=\'wppr-bttn\'>" . __( $cwp_tp_readreview, \'cwppos\' ) . \'</a>\';
    return $link;
}

结束

相关推荐

当返回值为空时,Apply_Filters为什么要返回非空字符串?

因为这个把我的键盘弄坏了。进行了正确的安装,将数据库上载到新的MySQL,并一直在正确使用子主题。但有件事困扰着我,我想不出来。在我的新安装上(ver2.whowhatwhy.com) 我故意将一些小部件留空。我想,当阅读default-widgets.php wp中的文件包括在该小部件上不会显示标题元素。相反,显示标题小部件是因为,出于某种原因,传递的值apply_filters 是一个空格,而不是空白值$instance[\'title\'] 为空。$title = apply_filters( \'