сообщение в подкатегорию и родительский элемент в wp вставить сообщение


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

Пожалуйста. что я делаю не так? ооо, если вы посмотрите в фрагменте html, 7 - это родительский кот, а цифры после запятой - это подкатегории.

   <?php 
if(isset($_POST['new_post']) == '1') {
    $post_title = $_POST['post_title'];
    $post_category = $_POST['cat'];
    $post_content = $_POST['post_content'];
    $new_post = array(
          'ID' => '',
          'post_author' => $user->ID, 
          'post_content' => $post_content,
          'post_title' => $post_title,
          'post_status' => 'publish',
          'post_category' => array($post_category)

        );

    $post_id = wp_insert_post($new_post);

    // This will redirect you to the newly created post
    $post = get_post($post_id);
    wp_redirect($post->guid);
}      
?>

Это и есть html

<form method="post" action="" name="" onsubmit="return checkformf(this);">


<input type="text" name="post_title" size="45" id="input-title"/>

<textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea></br>


<ul><select name='cat' id='cat' class='postform' > 
    <option class="level-0" value="7,95">child cat1</option> 
    <option class="level-0" value="7,100">child cat2</option> 
    <option class="level-0" value="7,101">child cat3</option> 
    <option class="level-0" value="7,94">child cat4</option> 
</select> 
</ul>

<input type="hidden" name="new_post" value="1"/> 

<input class="subput" type="submit" name="submitpost" value="Post"/> 


</form>

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. заранее благодарю

Author: andrewk, 2010-12-15

1 answers

Проблема в том, что вы не можете создать такой массив в PHP. Попытка привести строку, содержащую список, разделенный запятыми, в виде массива, просто создает массив с одним значением - вашей строкой, разделенной запятыми.

Вы хотите использовать функцию разнесения php для создания массива. Он берет строку и разбивает ее на добросовестный массив на основе произвольного разделителя (в вашем случае мы будем использовать запятую).

Попробуйте что-то вроде этого:

if(isset($_POST['new_post']) == '1') {
    $post_title = $_POST['post_title'];
    $arr_post_category = explode(',',$_POST['cat']); // EXPLODE!
    $post_content = $_POST['post_content'];
    $new_post = array(
          'ID' => '',
          'post_author' => $user->ID, 
          'post_content' => $post_content,
          'post_title' => $post_title,
          'post_status' => 'publish',
          'post_category' => $arr_post_category // NOW IT'S ALREADY AN ARRAY

        );

    $post_id = wp_insert_post($new_post);

    // This will redirect you to the newly created post
    $post = get_post($post_id);
    wp_redirect($post->guid);
}
 2
Author: MathSmath, 2010-12-15 03:28:21