2017-03-07 53 views
0

WordPress的,没有人知道如何以编程方式从改变链接:变化HREF到的onclick

<a href="some_url">click</a> 

到:

<a onclick="window.open('some_url','_blank', 'location=no')">click</a> 

这样在WordPress的可视化编辑器创建的所有环节通过inappbrowser打开在一个科尔多瓦应用程序。

围绕谷歌搜索后,下面是我能得到的最接近,但仍然无法正常工作时,'%link%'变量不改变实际链接网址:

add_filter('the_content', 'changeToOnclick'); 
function changeToOnclick($content) { 
    return preg_replace('/<a [^>]*>/', "<a onclick=\"window.open('%link%', '_blank', 'location=no')\">", $content); 
} 

任何帮助将不胜感激: )

+0

那岂不是更有意义的做到这一点使用JavaScript?至少“href”在JavaScript被禁用的情况下仍然可用。 –

+0

对不起,我是一个真正的新手在编码,你能告诉我的JavaScript代码?我会尽量在我的网站上使用它。 – yanuar

回答

1

做你想要什么正确的方法是这样的:

add_filter('the_content', 'changeToOnclick'); 
function changeToOnclick($content) {  
    return preg_replace('/<a href="(.+?)">/', '<a onclick="window.open(\'$1\', \'_blank\', \'location=no\');">',$content); 
} 
+0

非常感谢!问题解决了,呵呵:) – yanuar

0

做搜索,并使用WP过滤器代替你可以这样做:

function change_submenu_class($menu) { 
    $menu = preg_replace('/ class="sub-menu"/','/ class="dropdown" /',$menu); 
    return $menu; 
    } 
    add_filter('wp_nav_menu','change_submenu_class'); 

所以只要这个替代的JavaScript的部分,并给它一个尝试

+0

但他需要保持的网址,其他的东西需要更换,我张贴正确的方式做到这一点 – TriForce

+0

嗯我看到了,问题是如果他使用添加过滤器所有的链接将被取代。如果他在某个div中使用它可能更好! – Soykot

+0

感谢Kisuke的建议,但我确实希望所有链接都被替换。我会保持你的解决方案,因为它也对我有用:) – yanuar