2012-06-27 111 views
1

我正在编写一个插件,通过单击超链接(jQuery)来更新wordpress数据库。我学会了这样做的方式让我从PHP类更新数据库。从PHP类中获取帖子ID

我能够捕获和利用更新我的表的user_id:

$current_user = wp_get_current_user(); 
$user_id = $current_user->ID; 

我能够捕获和利用更新我的表blog_id:

global $blog_id; 

不过,我米无法捕获和更新我的表与post_id。我已经试过:

global $wp_query; 
$post = $wp_query->post; 
$post_id = $post->ID; 

这并不工作 - $ POST_ID返回0。事实上,在这个类这一点,is_single甚至返回FALSE。我卡住了,真的很感激一些帮助。

谢谢!

回答

2

对象属性$post不存在,除非你在循环(啊,成为一个WordPress用户)。而应使用对象属性$posts

参考:Wordpress Codex

+0

我很欣赏的答复。你能否更具体一些?我仍然处于亏损状态。你只是说要取代$ post = $ wp_query-> post;用$ post = $ wp_query-> posts ;?这不起作用,所以我假设我错过了一个步骤。 – Michael

+0

以下是它的解决方法:global $ query_string; $ posts = get_posts($ query_string); foreach($ posts as $ post){ $ post_id = $ post-> ID; } – Michael

+0

良好的工作,抱歉,我昨晚没有看到您的评论。 – Lusitanian

0

必须使用$posts代替$post

+0

我很欣赏这个答复。你能否更具体一些?我仍然处于亏损状态。你只是说要取代$ post = $ wp_query-> post;用$ post = $ wp_query-> posts ;?这不起作用,所以我假设我错过了一个步骤。 – Michael