get_post_meta не печатает / не предоставляет назначенные пользовательские поля в WordPress functions.php

#php #wordpress #function

#php #wordpress #функция

Вопрос:

Я понятия не имею, почему это не работает. Любая помощь была бы очень признательна.

 <?php
add_shortcode( 'CuFi' , 'CuFi_shortcode_callback');
    function CuFi_shortcode_callback() {
    $Title = get_post_meta( $post->ID, 'book', true);
    $Number = get_post_meta( $post->ID, 'isbn', true);
    if (!empty ( $Title )) {
       echo '<p> Book Title: ' . $Title . '</p>';
       echo '<p>ISBN: ' . $Number . '</p>';
    }
}
?>
  

Комментарии:

1. Что именно вы имеете в виду под «нерабочим»? Просто наблюдая, я чувствую проблемы, поскольку вы используете переменную $ post без ее определения. По крайней мере, вам не хватает «global $ post;» и тогда нам нужно знать, где вы пытаетесь использовать этот короткий код. Глобальная переменная $ post может не существовать в это время

2. Пожалуйста, отредактируйте свой вопрос, чтобы включить правильное объяснение того, что на самом деле означает «не работает» в вашем случае. Что происходит? idownvotedbecau.se/itsnotworking

Ответ №1:

просто поместите global $post в свой код

потому что вы не получили идентификатор записи

 add_shortcode( 'CuFi' , 'CuFi_shortcode_callback');
    function CuFi_shortcode_callback() {
    global $post;
    $Title = get_post_meta( $post->ID, 'book', true);
    $Number = get_post_meta( $post->ID, 'isbn', true);
    if (!empty ( $Title )) {
       echo '<p> Book Title: ' . $Title . '</p>';
       echo '<p>ISBN: ' . $Number . '</p>';
    }
}
  

я надеюсь, что это нормально работает на вашем сайте 🙂 приветствия

Комментарии:

1. Спасибо, Мехул Поранья, за вашу помощь. Теперь он «работает» по желанию. Приветствия!

2. @mgk не могли бы вы указать мой ответ как принятый, если это помогло. 🙂