Question

ce code fonctionne très bien. le problème est que j'ai quand je le soumets ne vérifie que la catégorie parente pas la sous-catégorie même si je spécifié à la fois un parent et une sous-catégorie.

s'il vous plaît. Qu'est-ce que je fais mal. ohh si vous regardez dans le morceau html, le chat est 7 mère et les chiffres après la virgule sont les sous-catégories.

   <?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);
}      
?>

est le 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>

S'il vous plaît laissez-moi savoir si vous avez besoin de plus amples informations. merci à l'avance

Était-ce utile?

La solution

Le problème est, vous ne pouvez pas faire un tableau comme ça en PHP. Essayer de lancer une chaîne qui contient une liste séparée par des virgules comme un tableau produit juste un tableau avec une seule valeur - votre chaîne séparée par des virgules

.

Vous voulez utiliser php fonction de pour exploser créer le tableau. Il faut une chaîne une divise en un ensemble de bonne foi fondée sur un delimiter arbitraire (dans votre cas, nous allons utiliser une virgule).

Essayez quelque chose comme ceci:

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);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top