Определение функции в functions.php или плагине и её вызов в цикле темы

29 авг. 2015 г., 15:16:06
Просмотры: 23.6K
Голосов: 4

Мне нужно определить функцию в functions.php или плагине и иметь возможность вызывать её как внутри цикла темы, так и за его пределами.

Например, у меня есть $product_price = get_post_meta(get_the_ID(), 'product-price', true);, определенный внутри цикла на всех этих страницах:

внутри home.php, index.php, archive.php, single.php и других пользовательских страниц...

поэтому каждый раз, когда мне нужно что-то изменить, приходится заходить на каждую из этих страниц и вносить изменения... Теперь я хочу создать функцию, где вместо того, чтобы иметь $product_price = get_post_meta(get_the_ID(), 'product-price', true); на каждой странице, я просто вызываю product_price(); и всё.

Я пробовал что-то вроде этого (как в плагине, так и в functions.php), но это не работает

function product_title() {
    global $post;

    $args = array( "posts_per_page" => "-1" );
    $get_title = new WP_Query( $args );

    while ( $get_title->have_posts() ) : $get_title->the_post();

    return get_post_meta(get_the_ID(), 'product-price', true);

    wp_reset_postdata();

    endwhile;
}
0
Все ответы на вопрос 1
0

Попробуйте использовать этот код (functions.php):

function product_title($id) {
  $custom='CustomField'; // Ваше произвольное поле здесь
  return get_post_meta($id, $custom, true);
}

и вызовите функцию в вашем шаблоне (в цикле и т.д...):

<?php $p_title=product_title(get_the_ID()); ?>
<h3>Продукт: <?php echo ($p_title); ?> </h3>
29 авг. 2015 г. 15:58:27