Wordpress Custom Widget - сохранение списка флажков, созданных из пользовательских типов записей - PullRequest
0 голосов
/ 28 сентября 2011

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

В основном я создаю простой пользовательский виджет. Он извлекает все сообщения из типа сообщения и отображает их в виде флажков. Мне нужно сохранить выбранные сообщения, а затем передать их в виде массива, чтобы я мог затем отобразить выбранные сообщения.

Для отображения флажков в форме у меня есть:

$postcount5 = 0; $featured_query5 = new WP_Query('showposts=5&post_type=adverts');
    while ($featured_query5->have_posts()) : $featured_query5->the_post(); 
    $do_not_duplicate[] = get_the_ID();$postcount5++;
    $currentid5 = get_the_ID();
    echo '<p><label><input type="checkbox" name="adverts" value="';
    the_id();
    echo'" ';
    if ( $currentid5 == $adboxid ) echo 'checked="yes"';
    echo '/> ';
    the_title();
    echo' </label><br/></p>';

Как только мне удалось их спасти, все будет в порядке. Я просто не могу понять, как сохранить список динамически создаваемых флажков. Заранее спасибо.

1 Ответ

0 голосов
/ 29 сентября 2011

Код, как он есть, не будет работать, даже если он не был динамически.То, что вам нужно сделать, это переименовать имя флажков, иначе будет доступно только последнее значение.Например, вы можете сделать это следующим образом:

$postcount5 = 0; 
$featured_query5 = new WP_Query('showposts=5&post_type=adverts');
while ($featured_query5->have_posts()) : $featured_query5->the_post(); 
   $do_not_duplicate[] = get_the_ID();
   $postcount5++;
   $currentid5 = get_the_ID();

   echo '<p><label><input type="checkbox" name="adverts'.$postcount5.'" value="'.$the_id().'";
   if ( $currentid5 == $adboxid ) echo 'checked="yes"';
   echo '/> ';
   the_title();
   echo' </label><br/></p>';

И, наконец, чтобы получить значения, вам нужна кнопка отправки и обернуть все это в элемент с установленным элементом action, например:

<form name="postselector" action="whereever_you_want_the_user_to_go_next.php">
INSERT HERE ALL THE INPUT CHECKBOXES
AND THE SUBMIT BUTTON
</form>

В whereever_you_want_the_user_to_go_next.php вы можете, наконец, прочитать выбранные элементы по:

if (isset($_POST['submit'])) {
   $selectedposts = array();
   $i = 0;
   foreach($_POST as $name => $value) {
      if (preg_match('adverts',$name) {
         $selectedposts[$i] = $value;
         $i++;
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...