我想创建一个对象并为此对象设置ID
喜欢
$p = new Product(87);
我在插件中有此代码,我想获取显示的自定义帖子的ID:
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
现在我想做:
$p = new Product($pid);
$p->setABigTomatoOnYourHead();
我不能只用
get_the_ID()
,
global $post
等等,因为它不可访问。
基本上我所做的就是从正在查看的自定义帖子中获取ID。在我的插件中,我想基于该ID创建一个新对象。
UPDATE“here”与插件主文件中创建的类位于同一个文件中:
喜欢
class Product {
}
$x = new Product($id); //here
SO网友:s_ha_dum
我在插件中有此代码,我想获取显示的自定义帖子的ID:
。。。
“here”与插件主文件中创建的类位于同一个文件中:
class Product {
}
$x = new Product($id); //here
你不能那样做。“正在显示的自定义帖子”不会显示在插件页面上,您的操作也不会在后端启动。您必须在
wp_head
钩子或其他前端钩子--类似于:
function getPostId(){
global $wp_query;
global $x; // bad variable name
$x = new Product($wp_query->post->ID);
}
add_action(\'wp_head\',\'getPostId\');
很有可能您可以重写该类以避免部分或全部这样的情况
global
混乱
如果您需要后端页面的ID,则必须找到另一种方法来标识该页面。你不能简单地钩住一个动作,而这个动作不能找到一个没有加载的页面的ID。