It Hints
Search
Close this search box.

Дол­го мучил­ся с про­из­воль­ны­ми поля­ми в WordPress и нако­нец нашёл решение.
Всем при­вет. Вста­ла пере­до мной ост­рая зада­ча сде­лать вывод про­из­воль­ных полей в отрыв­ке запи­си, а имен­но мне нуж­но было выве­сти зна­че­ние про­из­воль­но­го поля size в отры­вок запи­си. Как извест­но WordPress режет все теги кото­рые исполь­зу­ют­ся в про­из­воль­ных запи­сях и хотя этот вопрос реша­ет­ся пла­ги­ном Advanced Excerpt, но вот снип­пе­ты у вас всё рав­но в про­из­воль­ных полях рабо­тать не будут, т.е. вот такой шорткод

echo (get_post_meta(get_the_ID(), 'size', true))

ни дает ника­ко­го результата.
Но если же мы меня­ем get_the_ID() на непо­сред­ствен­но ID запи­си то всё чудес­ным обра­зом рабо­та­ет — ну хоть какой то резуль­тат, поду­мал я.
И тут мне при­шла мысль не брать id теку­щей запи­си, а пере­да­вать его в каче­стве пара­мет­ра через снип­пет, в наш шорткод.
В резуль­та­те роди­лась вот такая запись. Дан­ный шорт­код я про­пи­сал в пла­гин Снип­пе­ты (не люб­лю пор­тить ори­ги­наль­ные фай­лы темы, в част­но­сти function.php). Сде­ла­но конеч­но корявень­ко, но функ­ции свои выпол­ня­ет. Если у вас есть идеи как сде­лать без пере­да­чи ID запи­си, буду рад их увидеть.

add_shortcode( 'currentsize', 'size_' );
function size_( $atts ){
    $atts = shortcode_atts( array(
        'size_' => 'Индивидуально',
    ), $atts, 'currentsize' );
    return get_post_meta($atts['size_'], 'size', 1);
}

Вызы­ва­ет­ся в отрыв­ке при помо­щи [currentsize size_=2681] и всё отлич­но рабо­та­ет. Если что — то 2681 это id запи­си. Вывод ещё одно­го поля fasad я реа­ли­зо­вал вот так.

add_shortcode( 'currentfasad', 'fasad_' );
function fasad_( $atts ){
    $atts = shortcode_atts( array(
        'fasad_' => 'Индивидуально',
    ), $atts, 'currentfasad' );
    return get_post_meta($atts['fasad_'], 'fasad', 1);
}

Вызы­ва­ет­ся [currentfasad fasad_=2681]

Друзья - если вы нашли для себя что то полезное и хотите помочь проекту развиваться дальше, Вы можете задонатить любую сумму на поддержку. Деньги пойдут исключительно на оплату доменного имени, хостинга, а так же на мотивацию.

Facebook
Twitter
Email
VK
WhatsApp
Telegram