programing

jquery를 사용하여 워드프레스에서 현재 페이지 ID를 가져오는 방법

batch 2023. 3. 7. 21:11
반응형

jquery를 사용하여 워드프레스에서 현재 페이지 ID를 가져오는 방법

jquery만 사용하여 워드프레스에서 페이지 ID를 얻는 방법.페이지 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;
}

이 함수를 코드에 추가합니다.이제 다음을 사용하여 페이지 ID를 얻을 수 있습니다.

var id = get_current_page_id();

사용하다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');

스크립트의 vaiables를 이 방법으로 사용할 수 있습니다.

<script type="text/javascript">
    var MyPostID = MyScriptVars.postID;
</script>

jQuery에서만 현재 페이지 ID를 가져오려면 다음 단계를 수행하십시오.

  • 먼저 숨김 입력 또는 숨김HTML 태그를 만들고 요소의 ID를 기준으로 현재 페이지 ID를 추가합니다.c_pageid그리고 가치get_the_ID();
  • jQuery 파일에서 이 값은 다음과 같은 ID로 얻을 수 있습니다.var pageId=$("#c_pageid").val();

이것으로 문제가 해결될지도 모릅니다.

$(document).ready(function() {
    if ($("body").hasClass("page-id-3202")) {   
        // code here
    }
});

이를 위한 가장 좋은 방법은 PHP를 통해 글로벌 javascript 변수를 추가하는 것입니다.

그러기 위해서는 먼저 다음 스크립트를 페이지에 추가합니다.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 변수를 사용할 수 있습니다.

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

스크립트에 위의 행을 사용합니다.

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

언급URL : https://stackoverflow.com/questions/18395366/how-to-get-the-current-page-id-in-wordpress-using-jquery

반응형