未定义的变量 & 试图在将按钮添加到图像功能时获取非对象的属性

Posted

技术标签:

【中文标题】未定义的变量 & 试图在将按钮添加到图像功能时获取非对象的属性【英文标题】:Undefined variable & Trying to get property of non-object on prepend button to images Function 【发布时间】:2018-07-19 12:54:08 【问题描述】:

我在我的单篇文章中为我的 Wordpress 图片添加了一个按钮,以便在 Pinterest 上分享图片。到目前为止,该功能运行良好,但我收到以下通知。

注意:未定义变量:在 ...functions.php 上发布 第 2443 行通知:试图获取的属性 第 2443/functions.php 中的非对象

通知中提到的那一行是以$(this).prepend(..开头的那一行

知道如何解决这个问题吗?

使用功能:

<?php if ( is_single() ) : ?>

<script type="text/javascript">
jQuery(document).ready(function($) 
    $('figure').prepend(function()
        var pinurl = $(this).children('img').attr('data-original'); // with lazy load
        // var pinurl = $(this).children('img').attr('src'); // default
        $(this).prepend( '<a class="share-pinterest-btn" title="Pinterest" rel="nofollow" target="_blank" href="https://www.pinterest.com/pin/create/bookmarklet/?url=<?php echo urlencode(get_permalink($post->ID)); ?>&media='+pinurl+'&is_video=false&description=<?php echo urlencode(get_the_excerpt()); ?>" onclick="window.open(this.href, \'mywin\',\'left=50,top=50,width=600,height=350,toolbar=0\'); return false;">Pin it</a>');
    );
);
</script>

<?php else : ?>

     // something else

<?php endif; ?>

html 看起来像:

<figure id="post-881 media-881" class="align-none"><img  data-original="http://teststestests.com/wp-content/uploads/2017/1.jpg" class="loaded" src="http://teststestests.com/wp-content/uploads/2017/1.jpg"></figure>

【问题讨论】:

那么你在哪里定义了$post 对象? 我试图将global $post; 放入函数中 - 但没有运气。如果您的意思是别的 - 不幸的是我无法修复它 - 仍在阅读 wordpress 文档 【参考方案1】:
<?php
if(is_single()) : 
global $post;
?>

然后是你的 javascript 代码

【讨论】:

完美 - 非常感谢!我已经将global $post; 放在了函数中,但没有运气:)

以上是关于未定义的变量 & 试图在将按钮添加到图像功能时获取非对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

将图像添加到 Joomla JToolBar 自定义链接按钮

自定义按钮未正确呈现

UIButton 的 title 属性正确记录但在将按钮添加为子视图时未显示

添加到情节提要按钮的图像未正确显示

异步剪贴板 API“ClipboardItem 未定义” - Reactjs 将图像复制到剪贴板

尝试调用函数提交到 MySQL 时如何修复“未定义变量”