Javascript 如何在WordPress中获取当前页面或帖子的ID?
我需要获取当前帖子/页面的id。我使用的代码是:Javascript 如何在WordPress中获取当前页面或帖子的ID?,javascript,jquery,wordpress,post,Javascript,Jquery,Wordpress,Post,我需要获取当前帖子/页面的id。我使用的代码是: function get_current_page_id() { var page_body = $('body.page'); var id = 0; if (page_body) { var classList = page_body.attr('class').split(/\s+/); $.each(classList, function (index, item) {
function get_current_page_id() {
var page_body = $('body.page');
var id = 0;
if (page_body) {
var classList = page_body.attr('class').split(/\s+/);
$.each(classList, function (index, item) {
if (item.indexOf('page-id') >= 0) {
var item_arr = item.split('-');
id = item_arr[item_arr.length - 1];
return false;
}
});
}
return id;
}
从这里开始:
但据我所知,这只适用于“page”类型。这给我带来了一些问题,我希望它也适用于“post”类型(也可能是自定义类型的post,尽管我目前没有这些类型的post,而且它也不是很重要)
我对这个有点弱,所以有人能把它转换成工作岗位吗?(因此,无论类型如何,它都应返回id)
我认为这是一个简单的修复方法,可以在开始时从
$('body.page')
中删除“.page”,但可能不是。任何帮助都将不胜感激 此脚本正在获取以页面id开始的body元素类名段。只需使用post id
切换即可
if (item.indexOf('post-id') >= 0) {
我验证了上是否存在这样的类值。要查找并处理这两种情况,请尝试以下操作:
$.each(classList, function (index, item) {
// check for page ID *or* post ID
if (item.indexOf('page-id') >= 0 || item.indexOf('post-id') >= 0) {
var item_arr = item.split('-');
id = item_arr[item_arr.length - 1];
return false;
}
});
您可以在jquery中获取当前页面ID,如下所示:
将此代码放入functions.php
文件中
function functionname() {
$pageid = get_the_ID();
echo '<input type="hidden" id="get_page_id" value="'.$pageid.'">';
}
add_action( 'template_redirect', 'functionname' );
函数functionname(){
$pageid=获取该ID();
回声';
}
添加操作('template_redirect','functionname');
现在在jquery脚本文件中
var pageid=$(#get_page_id).val();
console.log(pageid)
您将获得页面id如果您只需要页面或帖子的编号,可以使用the_id()
函数
更多信息请参见:
如果这不起作用,请告诉我们您希望ID的具体用途。有不同的检索方法 您可以使用wp_localize_脚本查看一个示例OP想要知道当前帖子/页面的ID,而不是用户ID。好的,我已经使用该脚本更改了代码,您可以在中获取页面IDscript@cabrerahector请尝试上面的代码,让我知道它将工作..这样的话,它不会工作的职位只?我不会解决这个问题,因为我需要同时处理帖子和页面(除非页面中也有帖子id)。答案更新。您必须为您的用例进行一些实验。我没有足够的信息来确定这是正确的。谢谢。正如我所说,我对这些东西有点不了解,所以对我来说,这看起来像一个预定义的PHP函数,而我需要在jQuery中使用它。也许没关系,反正我也可以用?我有点困惑,但可能会尝试这个,所以再次感谢你