我想要修改 WordPress 编辑帖子页面中的自定义字段,并且需要帖子 ID 才能执行此操作。我在functions.php 中有一个函数,当我手动输入帖子ID 时它工作正常。当我尝试从 URL 获取帖子 ID 但 $_GET['post'] 被证明是无用时,问题就出现了。 var_dump($_GET['post']) returns NULL
、$global $post; var_dump($post->ID) returns NULL
。该URL是正常的帖子编辑链接
网址:http://mywebsite.com/wp-admin/post.php?post=435&action=edit
我已经能够通过 admin_head 挂钩获取帖子 ID,但无法让它在我的其他函数中使用 set_query_var() 工作。下面看看我修改后的代码:
add_action( 'admin_head', 'get_post_ID' );
function get_post_ID() {
global $post;
$thePostID = 0;
$pagenow = isset($GLOBALS['pagenow']) ? $GLOBALS['pagenow'] : null;
if ( $pagenow == 'post.php' ) {
$thePostID = $post->ID;
set_query_var('my_post_id', $thePostID);
}
return $post->ID;
}
function get_admin_post_ID() {
var_dump(get_query_var('my_post_id'));
}
add_action( 'template_redirect', 'get_admin_post_ID' );
这里可能有什么问题?我有什么遗漏的吗?请协助。
慕斯王