我想在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' );
这里可能是什么问题?我有什么想念的吗?请协助。
答案 0 :(得分:0)
那么,$ _ GET返回什么呢?
您是否正在使用某些插件来编辑帖子,并且不使用/通过此变量?
如前所述,浏览器地址url是否返回这样的内容?
saveAll(list)
PS: var_dump 在$ _GET ['post']上返回NULL,只是意味着有一个php 注意:未定义索引: post var不存在