WooCommerce woocommerce_product_query получить IDS - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь получить IDS основного запроса WooCommerce внутри хука 'woocommerce_product_query'

Я пытался сделать что-то вроде этого

add_action( 'woocommerce_product_query', 'custom_get_IDS' );
function custom_get_IDS( $q ) {
    if($q->have_posts()){
        while($q->have_posts()){
            $q->the_post();
            //get the id
            echo 'print the ID';
        }
    } else {
        echo 'no posts';
    }
}

, но этот вывод всегда "нет сообщений "даже если на странице l oop есть 2 продукта.

Если я сделаю

print_r($q);

, я получу объект WP_Query со всеми параметрами запроса, такими как

[query] => Array
    (
        [s] => my_query_word
        [post_type] => product
        [lang] => en
    )

[query_vars] => Array
    (
        [s] => my_query_word
        [post_type] => product
        [lang] => en
        [error] => 
        [m] => 
        [p] => 0
        [post_parent] => 
etc etc etc

Как я могу получить IDS запроса $ q внутри ловушки woocommerce_product_query?

Я должен сделать это внутри ловушки woocommerce_product_query.

1 Ответ

0 голосов
/ 05 мая 2020

Не рекомендуется, но это может дать вам желаемый результат.

add_action( 'woocommerce_product_query', 'custom_get_IDS' );

function custom_get_IDS( $q ) {
    remove_action( 'woocommerce_product_query', 'custom_get_IDS' );

    $posts = $q->get_posts();
    if ( $posts ) {
        foreach ( $posts as $post ) {
            //get the id
            echo 'print the ID=' . $post->ID;
        }
    } else {
        echo 'no posts';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...