在Wordpress插件中获取帖子id
我试图在我的自定义wordpress插件中获取帖子id,并使用以下代码:在Wordpress插件中获取帖子id,wordpress,plugins,Wordpress,Plugins,我试图在我的自定义wordpress插件中获取帖子id,并使用以下代码: global $post; $current_page_id = $post->ID; var_dump($current_page_id); 但是没有成功。使用var\u dump我接到了每个电话null。 比,如果我添加到模板,则输出效果更好: add_action('wp_footer', 'test'); function test() { global $post; $current_pa
global $post;
$current_page_id = $post->ID;
var_dump($current_page_id);
但是没有成功。使用var\u dump
我接到了每个电话null
。
比,如果我添加到模板,则输出效果更好:
add_action('wp_footer', 'test');
function test() {
global $post;
$current_page_id = $post->ID;
}
我想在插件内部实现的是将当前的post id传递给我的一个函数。比如:
my_function($base_url, array('variable_to_post' => $post->ID));
当您在插件中使用此选项时,这是可能的:
add_action('wp_head','getPageId');
并声明以下函数:
function check_thankyou(){
if(!is_admin()){
global $wp_query;
$postid = $wp_query->post->ID;
echo $postid;
}
}
如果您需要从wordpress插件获取帖子id,您可以在
wp
action hook中运行插件,以访问全局$wp\u query
对象
这是一个简单的测试解决方案
<?php
/*
Plugin Name: Plugin Name
Plugin URI:
Description: Plugin Description
Version: 1.0.0
Author:
Author URI:
*/
if (!defined('WPINC')) {
die;
}
/**
* Class MyPlugin
*/
class MyPlugin {
private $postId;
/**
* MyPlugin constructor.
* @param $wp_query
*/
public function __construct($wp_query) {
if ($wp_query && $wp_query->post) {
$this->postId = $wp_query->post->ID;
}
}
/**
* Get Post Id
* @return mixed
*/
public function getPostId() {
return $this->postId;
}
}
/**
* Start plugin
*/
add_action('wp', function () {
global $wp_query;
$myPlugin = new MyPlugin($wp_query);
echo $myPlugin->getPostId();
});
我认为wp_footer依赖于主题,这意味着每个WordPress主题的作者都有权包含它。有关更多信息,请查看此项——您在哪里使用此代码$post global在single.php和循环中工作。@deroccha您也可以检查此链接,它看起来像是一个回调,足以调用当前的$post->ID。我创建了另一个函数,它实际上在页脚中呈现我的一个javascript输出,而不是从那里传回$post全局变量。