Wordpress Custome Meta Box для шорткода

Я создал мета-поле для хранения короткого кода для контактной формы 7. Мета-поле работает нормально, проблема в том, что когда я использую do_shortcode для вывода шорткода, я получаю «404 Not Found», отображаемый в коде выстрела. Пример [контактная форма-7 "404 NOT FOUND"]. Я знаю, что оригинальный шорткод работает, do_shortcode('[contact-form-7 id="59" title="Контактная форма"]'); работает отлично. Мой следующий код не работает, пожалуйста, помогите.

<?php
    if(get_post_meta( get_the_id(), 'shortcode_input', true )) {
        $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
    }
    echo do_shortcode($contact_shortcode);

?>

person vixdoodle    schedule 30.10.2017    source источник
comment
Похоже, у вас опечатка.   -  person Mohsin    schedule 30.10.2017


Ответы (1)


Похоже, у вас опечатка в коде, ваше условие ЕСЛИ никогда не выполняется из-за get_the_id(), оно должно быть get_the_ID()

  <?php
    if(get_post_meta( get_the_ID(), 'shortcode_input', true )) {
        $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
    }
    echo do_shortcode($contact_shortcode);

?>

Также я предлагаю переместить оператор эха в условие IF, чтобы вы выводили шорткод только тогда, когда у вас есть шорткод, т.е.

     <?php
            if(get_post_meta( get_the_ID(), 'shortcode_input', true )) {
                $contact_shortcode = get_post_meta( get_the_ID(), 'shortcode_input', TRUE );
                echo do_shortcode($contact_shortcode);
            }


        ?>
person Mohsin    schedule 30.10.2017
comment
Нет, это не так. Результат тот же. Я все еще получаю [contact-form-7 404 NOT FOUND] в качестве вывода. Оператор if работает как есть. Переменная назначается, и если я просто вывожу переменную, я получаю правильный шорткод, который был сохранен. проблема возникает, когда я использую эту переменную в do_shortcode(). - person vixdoodle; 31.10.2017
comment
можете ли вы var_dump значение метаданных вашего сообщения и посмотреть, сохраняется ли у вас значение или нет? $cf7_code = get_post_meta(get_the_ID(), 'shortcode_input', true); затем var_dump($cf7_code); и посмотрите, есть ли у вас назначенное значение и какое оно? - person Mohsin; 31.10.2017