javascript - 如何获取当前页面的 ID 或在 WordPress 中发帖?

标签 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) {
            if (item.indexOf('page-id') >= 0) {
                var item_arr = item.split('-');
                id = item_arr[item_arr.length - 1];
                return false;
            }
        });
    }
    return id;
}

来自这里:how to get the current page id in wordpress using jquery

但据我了解,这仅适用于类型:“页面”。它给了我一些问题,我希望它也适用于“帖子”类型(也许是自定义类型的帖子,尽管我目前没有任何这些并且它不是很重要)。

我对此有点弱,所以任何人都可以将其转换为也可以用于帖子吗? (因此无论类型如何,它都应该返回 id )。

我认为这是在开始时从 $('body.page') 中删除 '.page' 的简单修复 - 但也许不是。任何帮助,将不胜感激。

最佳答案

此脚本正在抓取以 page-id 开头的正文元素类名段。只需使用 post-id 切换即可。

if (item.indexOf('post-id') >= 0) {

我验证了 the official WordPress blog 上存在这样的类值.要查找并处理这两种情况,请尝试以下操作:

$.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;
    }
});

关于javascript - 如何获取当前页面的 ID 或在 WordPress 中发帖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58202009/

相关文章:

jquery - CSS3 过渡仅适用于 Safari 中的第一个元素

jquery - 动态设置后选择器的宽度

css - 我无法在我的 wordpress 网站上使用@font-face 支持

javascript - 如何防止那些 PHP 变量被缓存在 WordPress 上?

使用 Dockerfile 预装插件的 WordPress 图像

javascript - 在 `array.push` 向其添加一些字符串后,数组会附加 undefined 。那是正常的吗?

javascript - 从javascript中的子窗口刷新父窗口

javascript - 如何使用 js 触发 only-css 模式

Javascript - 如何检测元素的 offsetTop 变化?

javascript - 用 Javascript 编写的可编辑表格