Форма Word Front Front для публикации / проекта сообщений напрямую

У меня есть форма входа в WordPress для публикации / создания сообщений непосредственно из моей темы: –

<?php if( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "new_post") { // Do some minor form validation to make sure there is content $title = $_POST["title"]; if(!empty($_POST['middle'])) { $description = 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE. a sentence ' . $_POST['end'] . ' with something in the END.'; } $tags = $_POST["tags"]; $post_cat = $_POST['cat']; // ADD THE FORM INPUT TO $new_post ARRAY $new_post = array( 'post_title' => $title, 'post_content' => $description, 'post_category' => $post_cat, // Usable for custom taxonomies too 'tags_input' => $tags, 'post_status' => 'draft', // Choose: publish, preview, future, draft, etc. 'post_type' => 'post', //'post',page' or use a custom post type if you want to ); //SAVE THE POST $pid = wp_insert_post($new_post); //REDIRECT TO THE NEW POST ON SAVE $link = get_permalink( $pid ); wp_redirect( '/post-submitted-draft' ); } // END THE IF STATEMENT THAT STARTED THE WHOLE FORM //POST THE POST YO do_action('wp_insert_post', 'wp_insert_post'); ?> 

и у меня есть простая форма php, которая имеет следующую функцию:

 <?php if(!empty($_POST['middle'])) { echo "a sentence".$_POST['middle']." with something in the MIDDLE."; } if(!empty($_POST['end'])) { echo "a sentence".$_POST['end']." with something in the END."; } ?> 

Я хотел включить его в форму, и я сделал это, используя следующий метод:

 if(!empty($_POST['middle'])) { $description = 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE. a sentence ' . $_POST['end'] . ' with something in the END.'; 

но он будет игнорировать все значение $ description, если поле «средний» пустое, и я хочу, чтобы он игнорировал только первое предложение, если поле «средний» пустое и отображает второе предложение, которое имеет поле «конец» т.е.

 'a sentence ' . $_POST['end'] . ' with something in the END.'; 

Как заставить это работать так?

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

 if(!empty($_POST['middle'])) { $description = "a sentence".$_POST['middle']." with something in the MIDDLE."; } if(!empty($_POST['end'])) { $description .= "a sentence".$_POST['end']." with something in the END."; } if(isset($description)) { // do something with description } 

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

Изменить :

 if(!empty($_POST['middle'])) { $description = 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE. a sentence ' . $_POST['end'] . ' with something in the END.'; 

к:

 $description = (!empty($_POST['middle']))? 'a sentence ' . $_POST['middle'] . ' with something in the MIDDLE.': '' ; $description .= (!empty($_POST['end']))? 'a sentence ' . $_POST['end'] . ' with something in the END.': '' ;