我可以对定制表使用可湿性粉剂注释吗?

时间:2013-05-06 作者:Steven

我正在使用WP作为我的站点的框架,我有一堆自定义表
现在我需要允许用户向各种实体写评论。假设一个实体是图像,我希望用户对我的图像进行评论。

我该如何使用wp_insert_comment() 当我只有图像ID而没有帖子ID时?(图像与帖子无关)。

示例:

使用jQuery,我执行以下函数:

public function addComment(){
    $data = array(
        \'comment_post_ID\' => 123,
        \'comment_author\' => \'Steven\',
        \'comment_author_email\' => \'[email protected]\',
        \'comment_author_url\' => \'http://www.storelocator.com\',
        \'comment_content\' => \'Lorem ipsum dolor sit amet...\',
        \'comment_author_IP\' => \'127.0.0.1\',
        \'comment_agent\' => \'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3\',
        \'comment_date\' => date(\'d-m-Y H:i:s\'),
        \'comment_date_gmt\' => date(\'d-m-Y H:i:s\'),
        \'comment_approved\' => 0,
    );

    $comment_id = wp_insert_comment($data);
    echo \'Comment ID: \'.$comment_id;
}
这是可行的。问题是没有ID为123的帖子。因此,当我转到我的管理界面时,会收到如下错误消息:

注意:尝试在/var/www/storelocator/wp-includes/capabilities中获取非对象的属性。php在线1178

注意:正在尝试获取/var/www/storelocator/wp admin/includes/class wp comments列表中非对象的属性。php在线488

我有没有办法解决这个问题?

Update
我正在尝试添加一些元数据,但中未触发该函数functions.php.

这是我目前使用的代码:

// Comment submit on a car
http://mysite.com/wp-content/themes/mytheme/include/jquery.php?action=addComment&entity=car&entity_id=247

// My web service
 - More or less as above. I\'ve added two fields:

  \'entity\' => $_REQUEST[\'entity_id\'],
  \'entity_id\' => $_REQUEST[\'entity\']

I\'ve also created a post, and using this post ID for comment_post_ID.


// functions.php - This is not triggered
add_action(\'comment_post\', \'pre_handle_comment\');

function pre_handle_comment($comment_id){
  add_comment_meta($comment_id, \'entity\', $_POST[\'comment_type\']);
  // Also tried
  add_comment_meta($comment_id, \'entity\', \'car\');
}

1 个回复
SO网友:fuxia

您可以创建一个隐藏的虚拟帖子,并始终将其帖子ID用作comment_post_ID. 然后使用注释元字段存储自定义表中的相关ID。

另一个可能更好的选择是:如果需要类似于帖子的内容,请使用自定义帖子类型,而不是表。将该帖子类型注册为…

\'supports\' => array(
    \'comments\',
),
…问题将不再存在。

要添加自定义数据,请挂接到wp_insert_comment:

add_action( \'wp_insert_comment\', \'prefix_comment_meta\', 10, 2 );

function prefix_comment_meta( $id, $comment )
{
    // evaluate POST request and create comment meta
}

结束

相关推荐

不能选中“Allow Comments”框

我已经注册了一个自定义帖子类型,确保“支持”中有“评论”,并且允许在“设置”->“讨论”下的新帖子上发表评论。我确实看到了允许评论和允许回溯/ping的复选框。如果我选中“允许评论”,则更新/发布帖子,it automatically gets unchecked.我不知道为什么。我找到的唯一解决方案是通过SQL查询。我可以在保存后添加一个操作来运行查询,但我想知道问题出在哪里。register_post_type( \'ott_products\', array(