J'essaie de créer une sorte de menu de sélection, afin de sélectionner les publications personnalisées selon différentes taxonomies personnalisées. J'ai fait la sélection, mais je ne parviens pas à publier mon message et je ne comprends pas où sont mes erreurs. Ce que j'ai si tarif: - Type de message personnalisé: "corsi"; - 5 taxonomies douanières différentes: "prodotto", "livello", "ruolo", "stato"; - Le formulaire de sélection, sous forme de formulaire, avec entrée de bouton radio et un peu de jQuery.
La partie formulaire
<form id="regiration_form" novalidate action="<?php echo $current_url;?>" method="post">
<fieldset>
<div class="form-group">
<h1>1</h1>
<?php
$prodotto_terms = get_terms( 'prodotto', array(
'orderby' => 'date',
'order' => 'DESC',
'hide_empty' => 0
) );
?>
<?php foreach( $prodotto_terms as $term ) {
$term_link = get_term_link( $term );
echo '<input type="radio" name="prodotto" value="'.$term->slug.'">'.$term->name.'<br>';
}
?>
</div>
<input type="button" name="next" class="next btn btn-info" value="Next" />
</fieldset>
<fieldset>
<div class="form-group">
<h1>2</h1>
<?php $livello_terms = get_terms( 'livello', array(
'orderby' => 'date',
'order' => 'DESC',
'hide_empty' => 0
) );
?>
<?php foreach( $livello_terms as $term ) {
$term_link = get_term_link( $term );
echo '<input type="radio" name="livello" value="'.$term->slug.'">'.$term->name.'<br>';
}
?>
<?php $ruolo_terms = get_terms( 'ruolo', array(
'orderby' => 'date',
'order' => 'DESC',
'hide_empty' => 0
) );
?>
</div>
<input type="button" name="previous" class="previous btn btn-default" value="Previous" />
<input type="button" name="next" class="next btn btn-info" value="Next" />
</fieldset>
<fieldset>
<div class="form-group">
<h1>3</h1>
<?php foreach( $ruolo_terms as $term ) {
$term_link = get_term_link( $term );
echo '<input type="radio" name="ruolo" value="'.$term->slug.'">'.$term->name.'<br>';
}
?>
<?php $stato_terms = get_terms( 'stato', array(
'orderby' => 'date',
'order' => 'DESC',
'hide_empty' => 0
) );
?>
</div>
<input type="button" name="previous" class="previous btn btn-default" value="Previous" />
<input type="button" name="next" class="next btn btn-info" value="Next" />
</fieldset>
<fieldset>
<div class="form-group">
<h1>4</h1>
<?php foreach( $stato_terms as $term ) {
$term_link = get_term_link( $term );
echo '<input type="radio" name="stato" value="'.$term->slug.'">'.$term->name.'<br>';
}
?>
</div>
<input type="button" name="previous" class="previous btn btn-default" value="Previous" />
<input type="submit" name="submit" class="submit btn btn-success" value="Submit" />
</fieldset>
</form>
Et voici comment j'ai essayé de publier les articles, mais rien ne s'affiche:/
<?php
if(isset($_REQUEST['submit']))
{
$prodotto = $_POST["prodotto"];
$livello = $_POST["livello"];
$ruolo = $_POST["ruolo"];
$stato = $_POST["stato"];
$soluzioni = new WP_Query( array(
'post_type' => 'corsi',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'paged' => $paged,
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'prodotto',
'field' => 'slug',
'terms' => $prodotto
),
array(
'taxonomy' => 'livello',
'field' => 'slug',
'terms' => $livello
)
) ) );
if ( $soluzioni->have_posts() ) {
echo '<ul>';
while ( $soluzioni->have_posts() ) {
$soluzioni->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
wp_reset_postdata();
} else {
// no posts found
}
} ?>
Qu'est-ce que je fais mal?
Merci d'avance, passez une bonne journée :)
Lisa
Apparemment, le problème était dans la relation "ET". Le code semble maintenant fonctionner:
<?php
if(isset($_REQUEST['submit']))
{
$prodotto = $_POST["prodotto"];
$livello = $_POST["livello"];
$ruolo = $_POST["ruolo"];
$stato = $_POST["stato"];
$args = array(
'post_type' => 'corsi',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'prodotto',
'field' => 'slug',
'terms' => $prodotto,
),
array(
'taxonomy' => 'livello',
'field' => 'slug',
'terms' => $livello,
),
array(
'taxonomy' => 'ruolo',
'field' => 'slug',
'terms' => $ruolo,
),
array(
'taxonomy' => 'stato',
'field' => 'slug',
'terms' => $stato,
),
)
);
$soluzioni = new WP_Query($args);
if ( $soluzioni->have_posts() ) {
echo '<ul>';
while ( $soluzioni->have_posts() ) {
$soluzioni->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
wp_reset_postdata();
} else
{
echo '<br/> OPPALLA no post';
}
}