0

我正在尝试将 facebook like 按钮附加到我博客上的每个帖子中。我已经设法获得添加喜欢按钮所需的任何东西,我唯一需要的是,我如何访问函数内的当前帖子的链接,author_bio_display($content)即在它说的地方rawurlencode('post permalink goes here')

function author_bio_display($content)  
{  
        $bio_box = '<iframe src="http://www.facebook.com/plugins/like.php?href='. rawurlencode('post permalink goes here') .'&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" id="facebook-like"></iframe>';

        return $content . $bio_box;  
}  

add_action("the_content", "author_bio_display"); 
4

4 回答 4

1

第一件事是那the_content不是一个Action Hook,它是一个Filter Hook所以你应该使用add_filter而不是add_action

function attach_like_button($content) {
  $post_id = $GLOBALS['post']->ID;
  $permalink = get_permalink($post_id);
  $link_button = ''; // Get latest facebook like button code from  https://developers.facebook.com/docs/reference/plugins/like/
  return $content.$link_button;
}

add_filter( 'the_content', 'attach_like_button' );
于 2013-09-12T06:53:08.687 回答
1

要在不创建全局 $post 变量的情况下获取当前 ID:

$id = get_the_id();

get_permalink($id);

大多数循环外函数以“get_”开头,这些函数不回显,而是返回数据。

于 2013-09-01T23:11:07.017 回答
0

如果您当前在详细信息页面上,即single.php在这里,我已经定义了一个变量$post并将当前的 POST->ID 保存在$permalink.Now 您可以使用它。

function author_bio_display($content)  
{  

        global $post;
        $permalink = get_permalink($post->ID);
        $bio_box = '<iframe src="http://www.facebook.com/plugins/like.php?href='. rawurlencode('*post permalink*') .'&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" id="facebook-like"></iframe>';

        return $content . $bio_box;  
} 
于 2013-09-01T11:35:18.810 回答
0

你需要做..

  $bio_box_id = get_permalink($post->ID);
  $bio_box = '<iframe src="http://www.facebook.com/plugins/like.php?href='. rawurlencode('*post permalink*') .'&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" id="facebook-like"></iframe>';
  return $content . $bio_box;  
于 2013-09-12T06:25:06.327 回答