ACF Dynami c выберите значения, не отображающие данные - PullRequest
0 голосов
/ 02 марта 2020

Этот вопрос сводит меня с ума уже почти 2 недели. Я знаю, что я не эксперт в Wordpress, поэтому я ищу здесь помощь.

У меня есть href, который, когда пользователь щелкает по нему, go открывает новую страницу.

<a href="./create-class?post=<?php echo $post->ID; ?>">Add Class2</a>

Этот href публикует идентификатор сообщения. Отображение URL:

[http://localhost/dev6/create-class/?post=289] [1]

страница создания класса:

На странице создания класса я использую GET метод для отображения идентификатора сообщения из URL

$post = $_GET['post'];

У меня есть форма ACF на странице создания класса для создания нового сообщения. В этой форме есть динамическое c поле выбора, но поле выбора не отображает никаких данных.

 <?php      acf_form(array(
          'post_id'   => 'new_post',
          'field_groups' => array(150),
          'post_title'  => false,
          'post_content'  => false,
          'new_post'    => array(
                  'post_type'   => 'classes',
                  'post_status' => 'publish',
                  ),
          'return'    => '%post_url%',
          'submit_value'  => 'Submit',
          //'updated_message'    => 'Course Submit!',
        )); ?>

в моей функции. php Я создаю функцию для динамического c выбор:

function acf_load_t_first_name2_field_choices($field) {
    global $post;
    //$post = $_GET['post'];
    // reset choices
    $field['choices'] = array();


    // get the textarea value from options page without any formatting
    $choices = get_field('t_first_name',$post->ID);



    // loop through array and add to field 'choices'
    if( is_array($choices) ) {

        foreach( $choices as $choice ) {

            $field['choices'][ $choice ] = $choice;

        }

    }


    // return the field
    return $field;

}

add_filter('acf/load_field/name=t_first_name2', 'acf_load_t_first_name2_field_choices');

Что-то не так с моим кодом?

1 Ответ

0 голосов
/ 02 марта 2020

Я не верю, что это будет работать в вашем шаблоне создания класса:

$post = $_GET['post'];

Вам нужно будет настроить что-то подобное в своих функциях. php file:

function custom_query_vars_filter($vars) {
  $vars[] .= 'post';
  return $vars;
}
add_filter( 'query_vars', 'custom_query_vars_filter' );

Затем в вашем шаблоне создания класса вы можете получить переменную из URL-адреса следующим образом:

$post = get_query_var('post');

Посмотрите, приведет ли это вас в правильном направлении.

...