Pegue o ID da postagem do plugin e use-o para criar um object

Eu quero criar um object e definir ID para este object

gostar

$p = new Product(87); 

Eu tenho esse código dentro de um plugin e quero pegar o ID da postagem personalizada mostrada:

 function getPostId(){ global $wp_query; global $pid; $pid = $wp_query->post->ID; echo 'pid=' . $pid; //returns 87 } add_action('wp_head','getPostId'); //I want to get the $pid here. echo 'pid=' . $pid; //returns null 

Agora eu quero fazer:

 $p = new Product($pid); $p->setABigTomatoOnYourHead(); 

Não consigo usar get_the_ID() , global $post etc., porque não é acessível.

Basicamente, tudo o que faço é pegar o ID da postagem personalizada que está sendo visualizada. No meu plugin, eu quero criar um novo object com base nesse ID.

UPDATE “here” está no mesmo arquivo que as classs são criadas no arquivo principal do plugin:

gostar

 class Product { } $x = new Product($id); //here 

Solutions Collecting From Web of "Pegue o ID da postagem do plugin e use-o para criar um object"

Eu tenho esse código dentro de um plugin e quero pegar o ID da postagem personalizada mostrada:

“aqui” está no mesmo arquivo que as classs são criadas no arquivo principal do plugin:

 class Product { } $x = new Product($id); //here 

Você não pode fazer isso. A “postagem personalizada mostrada” não está sendo mostrada na página do plugin e sua ação não triggersrá no backend. Você terá que criar seu object dentro do gancho wp_head ou algum outro gancho front-end – algo como:

 function getPostId(){ global $wp_query; global $x; // bad variable name $x = new Product($wp_query->post->ID); } add_action('wp_head','getPostId'); 

É muito possível que você possa rewrite a class para evitar alguma ou toda essa bagunça global .

Se você precisar da identificação de uma página no backend, você terá que encontrar outra maneira de identificar a página. Você simplesmente não pode se conectar a uma ação que não triggers para encontrar o ID de uma página que não está sendo carregada.