Wordpress Форма Шорткод - PullRequest
       8

Wordpress Форма Шорткод

0 голосов
/ 04 апреля 2020

Я создал шорткод для формы в WP. Теперь мне нужно сделать его динамическим c и добавить тег <select> с <options> для сообщений и таксономий.

function shortcode_form(){
 $form = "<form method='post'>
             <select name='escape-date' id='escape-date' required>
                  /* NEED TO ADD FUNCTION AND LOGIC TO DISPLAY POSTS */                        
             </select>

             <select name='escape-date' id='escape-date' required>
                  /* NEED TO ADD FUNCTION AND LOGIC TO DISPLAY TAXONOMIES ASSOCIATED WITH SELECTED POST ABOVE */                        
             </select>
          </form>";

 return $form;

}

Есть две проблемы:

1 - форма $ is string, поэтому я не могу добавить функции внутри него. Какие варианты у меня есть?

2 - Изменить второй <select>. Будет ли это возможно только с JS?

1 Ответ

0 голосов
/ 04 апреля 2020

Вы можете заполнить <select> списком сообщений, используя что-то вроде этого:

/** @var wpdb $wpdb */
global $wpdb;
$posts = query_posts(['post_type' => 'post', 'nopaging' => true]);
$posts_options_tags = array_map( function ( $post ) {
    return "<option value='{$post->ID}'>{$post->post_title}</option>";
}, $posts );
$posts_options_tags = implode('', $posts_options_tags);

$form = "<form method='post'>
         <select name='post_id' id='post_id' required>
            <option>Select a post</option>
            $posts_options_tags                        
         </select>

         <select name='escape-date' id='escape-date' required>
              /* NEED TO ADD FUNCTION AND LOGIC TO DISPLAY TAXONOMIES ASSOCIATED WITH SELECTED POST ABOVE */                        
         </select>
      </form>";
...