如何在 wordpress 中为 wp_ajax_nopriv 获取 functions.php 文件中的当前页面 ID

问题描述 投票:0回答:0

我想在 functions.php 中获取当前页面 ID 以运行我的 meta_query 条件。我一直没能做到这一点,并尝试了几个预定义的 WordPress 函数,但总是失败。我需要在循环外获取当前页面 ID。有人可以帮我找到解决这个问题的方法吗?

$current_page_id = get_the_ID(); // I want to display the current page id here and get_the_ID is not working.

这里是 functions.php 文件。

add_action('wp_ajax_myfilter', 'filter_function');
add_action('wp_ajax_nopriv_myfilter', 'filter_function');
                      
function filter_function(){

global $post, $wp_query;
$order = explode( '-', $_POST['misha_order_by'] );
$today_date = date('Ymd');

$current_page_id = get_the_ID();
$template_event_id = get_post_meta($current_page_id, 'event_id' ,true);

$params = array(
    'post_type'     => 'lodging-promo',
    'posts_per_page' => $_POST['misha_number_of_results'],
    'order' => $order[1],
    'orderby'       => 'meta_value_num title',
    'meta_key'      => $order[0],
    'meta_query' => array(
        'relation' => 'AND',
        array(
            'key' => 'promo_event_id',
            'value' => 26809,
            'compare' => '='
        ),
        array(
            'key'       => 'offer_end_date',
            'compare'   => '>',
            'value'     => $today_date,
        )  
    )
);

query_posts( $params );
global $wp_query;

if( have_posts() ) :
ob_start();
    while( have_posts() ): the_post(); ?>
    
    <div class="lodging-sec item <?php echo strtolower(get_field('property_type')); ?>" id="">
        <div class="col-md-5 promos-center">
            <h3>
                <?php if(get_field('business_name', $post->ID)){?>
                    <?php echo get_field('business_name', $post->ID);?>
                <?php } ?>
            </h3>
            <p class="event-offer">Rates*: $<?php the_field( 'starting_rate' ); ?> - $<?php the_field( 'maximum_daily_rate' ); ?></p>
            <span class="daily-rate-info">*Rate ranges are based on room type & day of week. Contact partner for more info.</span>
            <p><?php echo wp_trim_words( get_the_content(), 33, '...' ); ?></p>
            <a href="<?php echo get_field('booking_url', $post->ID);?>" class="book-btn" target="_blank">Book Now</a>
            <div class="promo-data">

            </div>
        </div>
        <div class="col-md-3 promos-left">
        <div class="promo-edate">
                <span class="end-date-promo"><strong>Property Type:</strong> <?php echo get_field( 'property_type', $post->ID ); ?></span>
                <!-- <span class="end-date-promo"><strong>Starting Rate:</strong> $ <?php echo get_field( 'starting_rate', $post->ID ); ?></span> -->
                <span class="end-date-promo"><strong>Distance from LeConte Center:</strong> <?php echo get_field( 'distance_from_leconte_center', $post->ID ); ?> Miles</span>
                <span class="end-date-promo"><strong>Address:</strong> <?php echo get_field( 'address', $post->ID ); ?></span>
                <span class="end-date-promo"><strong>Phone Number:</strong> <?php echo get_field( 'phone_number', $post->ID ); ?></span>
                <span class="end-date-promo"><strong>Promo Code:</strong> <?php echo get_field( 'promo_code', $post->ID ); ?></span>
                <span class="end-date-promo"><strong>Offer End Date:</strong> <?php echo get_field( 'offer_end_date', $post->ID ); ?></span>

            </div>
        </div>
        
        <div class="col-md-4 promos-right">
            <?php if ( has_post_thumbnail() ) { ?><img src="<?php echo get_the_post_thumbnail_url(); ?>" alt="" class="img-lodging-sec"><?php } ?>
        </div>
    </div>
    <?php endwhile;
    endif;

die();

}

php wordpress
© www.soinside.com 2019 - 2024. All rights reserved.