сообщение в подкатегорию и родительский элемент в 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>
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. заранее благодарю
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);
}