如何使用jquery在wordpress中获取当前页面ID

时间:2013-08-23 05:27:26

标签: jquery wordpress

如何仅使用jquery在wordpress中获取页面ID。我打算使用我需要知道页面ID的自定义脚本来更改页面的某些样式。

6 个答案:

答案 0 :(得分:3)

使用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>

答案 1 :(得分:2)

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();

答案 2 :(得分:1)

如果您想单独在jQuery中获取当前页面ID,可以按照以下步骤执行:

  • 首先制作隐藏的输入或隐藏的HTML标记,然后按元素的ID添加当前页面ID:c_pageid和值get_the_ID();
  • 在您的jQuery文件中,您可以通过id var pageId=$("#c_pageid").val();
  • 获取此值

这可以解决您的问题。

答案 3 :(得分:0)

执行此操作的最佳方法是通过PHP添加全局javascript变量。

为此,首先将以下脚本添加到page.php模板文件中:

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

现在,在您的javascript代码中,您可以像这样使用此全局变量。

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

您可以使用相同的技术在javascript中使用其他WordPress变量。

答案 4 :(得分:0)

var pageId="<?php echo get_the_ID(); ?>"

在剧本中使用上述行

答案 5 :(得分: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;
    }