2011-03-30 55 views
1

我试图创建一个Wordpress插件,它在所有帖子下面添加一个按钮。该按钮是一个“赞”按钮,通过URL将一些参数传递到新站点。在变量中混合使用PHP和HTML

参数是WordPress的永久链接,标题和博客名称。

无法使其工作。

function add_bloglovin($content) { 

    $blog_title = get_bloginfo('name'); 
    $link = the_permalink(); 
    $title = the_title(); 

    $bloglovin ="<br><a href=\"http://www.bloglovin.com/like/?b=$blog_title&p=$link&t=$title\" onclick=\"window.open(this.href, 'bloglovin_like', 'width=480,height=320, toolbar=0, location=0, menubar=0, scrollbars=0, status=0'); return false;\"><img src=\"http://www.bloglovin.com/widget/bilder/like.gif\"></a>"; 
    return $content .$bloglovin; 
} 
add_filter('the_content', add_bloglovin); 
+0

究竟什么不行?什么是失败? – JohnP 2011-03-30 10:15:52

+0

它将第一个$ blog_title添加到$ bloglovin变量中,但不是$ link和$ title ..是PHP还是wordpress,可以解决这个问题? – user681061 2011-03-30 10:17:54

+0

您可能需要在放入代码之前将代码urlencode()。 – JohnP 2011-03-30 10:33:04

回答

3

the_permalink()是显示函数。使用get_permalink()返回可以使用的字符串。要让the_title只返回没有包装HTML的标题,你需要使用the_title('','',false);

function add_bloglovin($content) { 
    $blog_title = get_bloginfo('name'); 
    $link = get_permalink(); 
    $title = the_title('','',false); 
    $bloglovin ="<br><a href=\"http://www.bloglovin.com/like/?b=$blog_title&p=$link&t=$title\" onclick=\"window.open(this.href, 'bloglovin_like', 'width=480,height=320, toolbar=0, location=0, menubar=0, scrollbars=0, status=0'); return false;\"><img src=\"http://www.bloglovin.com/widget/bilder/like.gif\"></a>"; 
    return $content .$bloglovin; 
} 
+0

你救了我一天的男人!十分感谢!它像一个魅力! – user681061 2011-03-30 12:40:57

1

从WordPress食品: http://codex.wordpress.org/Function_Reference/the_permalink

函数参考/固定链接

显示的URL永久链接 目前正在 的循环后处理的。此标记必须在 循环内,并且通常用于在显示 帖子时显示 每篇文章的固定链接。由于此 模板标记仅限于显示 正在处理的帖子的永久链接,因此您无法使用它来登录 在您的博客上显示任意 帖子的永久链接。

您不能使用$ link = the_permalink();除非它在the Loop之内。

+0

虽然..真正的shanethehat代码不正确!我只是在我从wordpress获得的变量前面使用get_,所以它在循环内部。$ content是循环内部的代码,我在代码后面添加了代码。 – user681061 2011-03-30 12:42:30

+0

嘿!我说Codex说不能使用the_permalink()函数[或者get_permalink()或者事实上],除非它在循环中。你原来的帖子不会显示它是否在循环中引用,所以我告诉你检查一下,以防万一。真高兴你做到了。 – Cogicero 2011-03-31 14:41:18

0

尝试通过var_dump()变量$link$title变量进行基本的健全性检查。他们真的包含一个字符串吗?