Wordpress - 从当前用户检索特定帖子

时间:2014-06-26 15:01:20

标签: php wordpress

我有一个包含2个字段的自定义帖子,第一个字段是用户,第二个字段是表格,每当用户登录时,我必须显示第一个字段中包含该用户的所有帖子这就是我发现的:

wp_user 中,我将用于测试的用户ID将包含: user_id = 3

wp_postmeta 中,我有一行包含这些值:

-post_id = 92 -meta_value = 3

wp_posts 中,在 ID = 92 中,我有我想要的具体帖子名称。

我对如何动态制作此代码非常困惑,因此任何用户都可以看到自己的帖子。 BTW,post_author是管理员,所以我不能使用该字段

基本上,我必须使用meta_value从wp_postmeta中检索post_id,我已经看过几个指南但却无法真正理解如何做到这一点。我知道我必须使用wp_get_current_user()。请有人详细解释如何实现这一目标。

由于

2 个答案:

答案 0 :(得分:0)

在你的functions.php中你需要放置这个钩子,每当添加或更新帖子时都会触发这个钩子你需要使用它来保存post元表中的post id。

  function enter_post_id( $post_id ) {

          wp_get_current_user()  // Get current user id with this 
          update_post_meta()($post_id, $meta_key, $meta_value, $unique) 
          // add a meta key say 'user_id' and place the value of user_id as meta value


    }
    add_action( 'save_post', 'enter_post_id' );

现在您已完成匹配,您只需查询帖子元表并获取用户的帖子ID,然后从wp_posts仅显示匹配ID的帖子。

希望这会有所帮助。随意询问您是否有任何困惑。

答案 1 :(得分:0)

没问题:)使用此功能。

function get_post_id(){ 
global $wpdb;

$result = $wpdb->get_results( "SELECT post_id FROM wp_postmeta WHERE meta_key='user_id' AND meta_value= $user_id ", OBJECT ); 
// Where $user_id is the id you get from wp_current_user() 

} 

现在var转储这个$ result以查看post_id

循环执行此操作以获取每个帖子ID的值