您的自定义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;
因此,只需在代码中进行上述替换即可。:)