2016-08-03 31 views
0

私はwordpressのためのプラグインを作っています。問題は、ループの外で現在の投稿IDを取得するにはどうすればいいですか?現在の投稿idをループ外に取得します。ワードプレス

私はポストにボタンがあり、ボタンをクリックするとpost IDが返されます。

投稿IDを取得するにはどうすればよいですか?

私のプラグインディレクトリ: http://localhost:8080/wordpress/?p=1169

 $post_id = $_GET['p']; 
     echo $post_id; 
     $link = getConnection(); 

     $bonusPoint = 0; 

     $query_sql = "SELECT bonus_point FROM post_data03 WHERE post_id =" .$post_id; 
     $result = mysqli_query($link, $query_sql); 

     if (mysqli_num_rows($result) > 0) { 
       // output data of each row 
       while($row = mysqli_fetch_assoc($result)) { 
        $bonusPoint = $row['bonus_point']; 
       } 
     } else { 
        echo "0 results"; 
     } 

$postを使用して、私のURL:ここに

wp-content\plugins\updateDatabase\js\connectionDatabase.phpが私のコードである

function getBonusPointFromDataPost() 
{ 
     global $wp_query; 
     global $post; 
     $post_id = add_action('the_post', 'get_post_info'); 
     $link = getConnection(); 
} 

GetBonusPointFromDataPost()が発射されたときにユーザーがクリックポストのボタンページ。同時に、$post_idが返されます。

私は$post_idを返す関数を作成しますが、actionを追加すると機能します。

function get_post_info() { 
     global $wp_query; 

     global $post; 
     $post_id = $wp_query->post->ID; 
     echo $post_id; 
     return $post_id; 
    } 

ボタンをクリックすると、$post_idを返す方法を教えてください。

+0

$ postId = $ _GET [ 'ポスト']を得るために 使用global $postです。 –

+0

このメソッドを使用しようとしていますが、 'url'に' http:// localhost:8080/wordpress/2016/08/03/1147/' – Capslock10

+1

の' post'がないことがわかりました。設定 - >パーマリンク、選択したオプションを確認してください –

答えて

1

ここでは、現在のポストオブジェクト

global $post; 
echo $post->ID; 
+0

私はなぜそうはしませんが、動作しません。私は私の質問を更新します。 – Capslock10

+0

これをinitの後に実行すると、動作します – Mickey

+0

'add_action'を追加したときに試してみました。しかし、私の関数で試してみると、 'function'は' add_action'とは関係なく 'Wordpress loop'の外にあるので動作しません。ループの外側で 'post id'を得る方法がありますか?どうも – Capslock10

関連する問題