7

如何单独使用 jquery 在 wordpress 中获取页面 id。我计划使用我需要知道页面 id 的自定义脚本来更改页面的某些样式。

4

7 回答 7

8
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;
}

将此函数添加到您的代码中。您现在可以使用以下方法获取页面 ID:

var id = get_current_page_id();
于 2017-05-05T15:56:35.150 回答
4

使用wp_localize_script.

function my_custom_vars() {

global $wp_query;
    $vars = array(
        'postID' => $wp_query->post->ID,
    );

wp_localize_script( 'myvars', 'MyScriptVars', $vars );
}  

add_action ('wp_enqueue_scripts', 'my_custom_vars');

您可以通过这种方式在脚本中使用变量..

<script type="text/javascript">
    var MyPostID = MyScriptVars.postID;
</script>
于 2013-08-23T06:07:49.477 回答
1

如果您想单独在 jQuery 中获取当前页面 id,您可以按以下步骤操作:

  • c_pageid首先进行隐藏输入或隐藏 HTML 标签,并通过元素的 id:和值在其中添加当前页面 idget_the_ID();
  • 在您的 jQuery 文件中,您可以通过 id 获取此值,例如var pageId=$("#c_pageid").val();

这可能会解决您的问题。

于 2016-04-02T12:30:51.897 回答
1
$(document).ready(function() {
    if ($("body").hasClass("page-id-3202")) {   
        // code here
    }
});
于 2022-01-27T19:50:47.713 回答
0

The best way to do this is by adding global javascript variables via PHP.

To do this first add the following script to your page.php template file:

<script>
var pageId = <?php echo isset($posts[0]) ? $posts[0]->ID : 'null'; ?>;
</script>

Now in in your javascript code you are able to use this global variable like this.

<script>
if(pageId !== undefined && pageId) {
 // do some code based on pageId
}
</script>

You can use this same technique to use other WordPress variables in javascript.

于 2013-08-23T05:43:22.227 回答
0
var pageId="<?php echo get_the_ID(); ?>"

在脚本中使用上述行

于 2013-08-23T06:08:48.540 回答
0
var current_page_id = get_current_page_id();

    function get_current_page_id() {
        var page_body = $('body.page');
        var page_id = '';
        if(page_body) {
            var classList = page_body.attr('class').split(/\s+/);

            $.each(classList, function(index, item) {
                if (item.indexOf('page-id') >= 0) {
                    page_id = item;
                    return false;
                }
            });
        }
        return page_id;
    }
于 2018-11-03T05:01:08.180 回答