Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在WordPress中获取当前页面或帖子的ID?_Javascript_Jquery_Wordpress_Post - Fatal编程技术网

Javascript 如何在WordPress中获取当前页面或帖子的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) {

我需要获取当前帖子/页面的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) {
            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中使用它。也许没关系,反正我也可以用?我有点困惑,但可能会尝试这个,所以再次感谢你