您的自定义get_the_post_thumbnail_src()
作用returns a string and not an array, 因此,在以下代码中,$sb_thumb
不是数组:
$sb_thumb = get_the_post_thumbnail_src(get_the_post_thumbnail());
因此,出现问题的PHP通知是因为您使用了
$sb_thumb[0]
在以下代码中
wpvkp_social_buttons()
功能:
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.\'&media=\'.$sb_thumb[0].\'&description=\'.$sb_title;
要删除该通知,只需替换上面的
$sb_thumb[0]
具有
$sb_thumb
.
然而,实际上有一个WordPress函数,你可以(我也会)使用它来获取特色图片的URL-get_the_post_thumbnail_url()
.
例如,您可以简单地这样做,以获取您的get_the_post_thumbnail_src()
函数将返回:
$sb_thumb = get_the_post_thumbnail_url();
记住,
get_the_post_thumbnail_url()
返回URL(即字符串),如果没有可用图像,则返回false。
为什么会显示在页面中?它应该只显示在柱子上。
在代码中,您使用is_singular()
不指定第一个(也是唯一一个)参数($post_types
), 如果你看看documentation, 它指出:
如果指定了$post\\U types参数,此函数将另外检查查询是否针对指定的post类型之一。
因此,如果您希望社交共享按钮仅显示在单个帖子页面上,即仅当帖子类型为post
, 然后你会使用is_singular( \'post\' )
而不是仅仅is_singular()
, 像这样:
// Replace this:
if(is_singular() || is_home()){
// with this:
if(is_singular( \'post\' ) || is_home()){
Additional Notes
<您还应该对
media
Pinterest URL中的值-
urlencode( $sb_thumb )
.
什么是$maisURL = $current_url;
对于也许你应该删除这些变量?
您在此处输入了错误:add_action( \'plugins_loaded\', \'wpvkp_social_buttons\' );
— 第二个参数应为myplugin_muload_textdomain
.
但我想这只是问题中的一个拼写错误?
根据您的评论更新:
我得到一个;致命错误:无法重新声明get\\u the\\u post\\u thumbnail\\u url()
我无法实现这些:urlencode( $sb_thumb )
get_the_post_thumbnail_url()
至于致命错误,我不知道你做了什么,但正如我在评论中所说的,WordPress已经定义了这个函数(这意味着它是一个核心函数),并且它在两个wp-admin
和站点的前端/非管理端,因此您不需要手动加载函数,也不需要创建同名的全局函数。
至于实施:
Step 1:
// Replace this:
$sb_thumb = get_the_post_thumbnail_src(get_the_post_thumbnail());
// With this:
$sb_thumb = get_the_post_thumbnail_url();
Step 2:
更换此部件:if(!empty($sb_thumb)) {
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.\'&media=\'.$sb_thumb[0].\'&description=\'.$sb_title;
}
else {
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.\'&description=\'.$sb_title;
}
// Based on popular demand added Pinterest too
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.\'&media=\'.$sb_thumb[0].\'&description=\'.$sb_title;
使用此选项:if(!empty($sb_thumb)) {
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url. // wrapped for brevity
\'&media=\'.urlencode( $sb_thumb ).\'&description=\'.$sb_title;
}
else {
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.\'&description=\'.$sb_title;
}
或更简单的:$media = $sb_thumb ? \'&media=\' . urlencode( $sb_thumb ) : \'\';
$pinterestURL = \'https://pinterest.com/pin/create/button/?url=\'.$sb_url.$media.\'&description=\'.$sb_title;
因此,只需在代码中进行上述替换即可。:)