widget wordpress et problème de contenu de publication
Je suis légèrement bloqué. Le modèle que j’utilise a un type de publication personnalisé appelé produits. Lorsque j’ajoute des articles/pages ici, je peux les afficher à l’aide d’un code de widget dans une page.
Le widget affiche le contenu saisi dans les champs personnalisés, mais je ne peux pas trouver comment modifier le code afin d’afficher le contenu de la section Contenu de type post personnalisé. Un aperçu?
C’est le code du fichier shortcodes.php qui produit le widget.
$count_posts = wp_count_posts('product');
$published_posts = $count_posts->publish;
$out ='';
$out .=' <div class="pricing-table">';
$out .= '<ul>';
$counter = 0;
while ( have_posts() ) : the_post();
$counter++;
$product_price = get_post_meta($post->ID,'_product_price',true);
$out .= '<li class="heading-column '.$class_heading.' color'.$counter.'">';
$out .= '<h3>'.get_the_title().'</h3>';
$out .= '<h5>';
$out .= $currency ? $currency : "$";
$out .= $product_price;
if ($billing_cycle == "none") {
$out .= "";
} else {
$out .= ' per '.$billing_cycle;
}
$out .= '</h5>';
$out .= '</li>';
endwhile;
$out .= '</ul>';
$out .= '<div class="clear"></div>';
$out .= '<ul>';
while ( have_posts() ) : the_post();
$product_url = get_post_meta($post->ID,'_product_url',true);
$product_feature = get_post_meta($post->ID,'_product_feature',true);
$features_list = explode(",",$product_feature);
$counter++;
$out .= '<li class="pric-column '.$class_column;
if ($counter%$columns==0) $out .= '-last';
$out .= '">';
foreach ($features_list as $flist) {
$out .= '<ul class="feature-list">';
$out .= '<li>'.$flist.'</li>';
}
$out .= '<li class="last">';
$out .= '<a class="button" href="'.$product_url.'"><span>'.$product_button_text.'</span></a>';
$out .= '</li>';
$out .= '</ul>';
endwhile;wp_reset_query();
$out .= '</ul>';
$out .= '</div>';
return '[raw]'.$out.'[/raw]';
}
Solution n°1 trouvée
votre code ne fonctionne pas car the loop
n’est pas rempli.
Là pour cela il fera la boucle par défaut de la page. (si ce n’est pas déjà fait, c’est le cas)
Aussi, vous faites des choses qui ne ressemblent en rien à $published_posts
.
Vous devez créer une boucle personnalisée avec WP_Query
.
Une petite aide pour démarrer :
$query_args = array(
'post_type' => 'products', // the post type name
'post_status' => 'publish',
);
$products = new WP_Query ($query_args)
// before loop stuff like opening tags
while($products->have_posts()): $products->the_post();
// do your stuff like display post_meta
endwhile;
// after loop stuff like closing tags
Cela devrait vous aider à démarrer.
Si vous avez besoin d’aide, faites le moi savoir !
0 commentaire