我正在尝试在我的自定义wordpress插件中获取帖子ID,并且我使用以下代码:
global $post;
$current_page_id = $post->ID;
var_dump($current_page_id);
但没有任何成功。使用var_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));
答案 0 :(得分:1)
当你在插件中使用它时,它是可能的:
add_action('wp_head','getPageId');
并声明以下功能:
function check_thankyou(){
if(!is_admin()){
global $wp_query;
$postid = $wp_query->post->ID;
echo $postid;
}
}
答案 1 :(得分:1)
如果您需要从wordpress插件获取帖子ID,则可以在wp
动作挂钩中运行插件,以访问全局$wp_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();
});
希望这会对某人有所帮助。