Идентификатор эхо-переменной вне функции в WordPress - PullRequest
1 голос
/ 13 марта 2020

Я пытаюсь отобразить $the_ID вне функции footer_output(), но я не уверен, как заставить это работать. Вот мой код:

add_action('wp_footer', 'footer_output', 10);
function footer_output() {

    global $post;

    $args = array(
        'post_type'         => 'shoes',
        'posts_per_page'    => -1,
        'meta_query'   => array(
            'relation' => '==',
            array(
                'key'     => 'women',
                'compare' => 'EXISTS',
                'value'   => '1'
            ),
        ),
    );
    $query = new WP_Query($args);
    while ($query->have_posts()) : $query->the_post();

        $the_ID = $post->ID;

        $size = get_post_meta($the_ID, 'size', true);
        $color = get_post_meta($the_ID, 'color', true);
        // Do more stuff here...

    endwhile;
    wp_reset_postdata();

}

add_action('wp_head', 'header_output', 10);
function header_output() {

    echo '<link rel="stylesheet" id="shoes-' . $the_ID . '"  href="" media="all" />';

}

Но, конечно, это не работает. Есть предложения?

1 Ответ

1 голос
/ 13 марта 2020

Вы почти у цели. Вам просто нужно return $the_ID; из footer_output() и использовать функцию вместо $the_ID var, как показано ниже:

add_action('wp_footer', 'footer_output', 10);
function footer_output() {

    global $post;

$args = array(
    'post_type'         => 'shoes',
    'posts_per_page'    => -1,
    'meta_query'   => array(
        'relation' => '==',
        array(
            'key'     => 'women',
            'compare' => 'EXISTS',
            'value'   => '1'
        ),
    ),
);
$query = new WP_Query($args);
while ($query->have_posts()) : $query->the_post();

    $the_ID = $post->ID;

    $size = get_post_meta($the_ID, 'size', true);
    $color = get_post_meta($the_ID, 'color', true);
    // Do more stuff here...

    endwhile;
    return $the_ID;
    wp_reset_postdata();

}

add_action('wp_head', 'header_output', 10);
function header_output() {

    echo '<link rel="stylesheet" id="shoes-' . footer_output() . '"  href="" media="all" />';

}
...