setup_postdata () ne semble pas fonctionner?
5 réponses
- votes
-
- 2011-02-22
Jepeuxme tromper,mais d'après ce queje vois,"setup_postdata ()" devrait être utilisé lors d'une requête de sélectionpersonnalisée (pas seulement query_posts): http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
Deplus,si vous souhaitez utiliser desbalisestelles que "the_title ()"et "the_permalink ()" avec cette requête de sélectionpersonnalisée ... vous devrez utiliser lenom de variable $post spécifiquement (pas un autrenom de variable) dans setup_postdata () - AUSSI - vous devriez appeler global $post avant votreboucle "foreach" ...
Suivez doncfondamentalement cetexemple dans ce lien codex.Etne changezpas lenom de la variable $post - sinon cela la casse.
HTH
I could be wrong, but from what I'm seeing, "setup_postdata()" should be used when doing a custom select query (not just query_posts): http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
As well, if you want to use tags like "the_title()" and "the_permalink()" with that custom select query ... you'll need to use the variable name $post specifically (not another variable name) in setup_postdata() - AS WELL - you should call global $post before your "foreach" loop...
So basically follow that example in that codex link. And don't change the variable name $post - otherwise it breaks it.
HTH
-
"vous devriez appelerglobal $post".OUI!Pourquoin'est-cepas dans le Codex"you should call global $post" . YES! Why is that not in the Codex
- 2
- 2014-04-26
- AlxVallejo
-
- 2011-08-24
Remplacez le
foreach ( $childPosts as $cp ) : setup_postdata( $cp );
avec
foreach ( $childPosts as $post ) : setup_postdata( $post );
Vous devez donc utiliser la variableexacte
$post
avecsetup_postdata()
.Replace the
foreach ( $childPosts as $cp ) : setup_postdata( $cp );
with
foreach ( $childPosts as $post ) : setup_postdata( $post );
So you need to use the exact
$post
variable along with thesetup_postdata()
.-
Cela a résolu leproblème quej'avais.SalutmonpoteThis fixed the the problem I was having. Cheers mate
- 0
- 2012-03-02
- Jeff K.
-
Quelqu'un achète unebière à cet homme!Merci .. Uneidéepourquoi/comment une variable localepeutjouer avec `setup_postdata ()`?Somebody buy this man a beer! Thank you.. Any idea why/how a local variable can mess with `setup_postdata()` ?
- 2
- 2016-11-07
- Odys
-
Bizarre.Il sembletellementillogique d'exiger unnom de variable spécifique lorsque vous lepassezen paramètre.Weird. It seems so illogical to require a specific variable name when you're passing it as a parameter.
- 1
- 2018-12-14
- Gavin
-
@Gavin Jene saispaspourquoiplus degensne remettentpasen question à quelpoint unepartie de la logique WPest étrange.L'étrangetéestjustenormalemaintenantil semble ...@Gavin I don't know why more people don't question how weird some of the WP logic is. The strangeness is just normal now it seems ...
- 1
- 2020-07-24
- JDandChips
-
- 2011-09-21
Selon l'endroit où vous utilisez setup_postdata () (si cen'estpas dans laboucleprincipale,ou dans un widget defonction/barre latérale,parexemple),vous devrezpeut-être également déclarer -
global $post;
Depending on where you are using setup_postdata() (if it is not in the main loop, or in a function/sidebar widget, for example), you may also need to declare -
global $post;
-
- 2016-09-13
global post;
ne fonctionnepas avecsetup_postdata($post);
si vous souhaitez utiliser lafamille de commandesthe_title()
,etc..C'est dans https://codex.wordpress.org/Function_Reference/setup_postdata
Utilisezplutôt
// global $post; setup_postdata($post_object); //don't do this! setup_postdata( $GLOBALS['post'] =& $post_object );
... assurez-vous également que votre
$post_object
est un objet WP_Post valide.global post;
does not work withsetup_postdata($post);
if you want to use thethe_title()
family of commands etc.It's in https://codex.wordpress.org/Function_Reference/setup_postdata
Instead use
// global $post; setup_postdata($post_object); //don't do this! setup_postdata( $GLOBALS['post'] =& $post_object );
...also make sure your
$post_object
is a valid WP_Post object.-
Cette réponse résouten fait leproblème,au lieu degronder l'OP:pThis answer actually solves the problem, instead of scolding the OP :p
- 1
- 2017-11-23
- nodws
-
- 2011-02-19
Lorsque vousinterrogez des articles,utilisez simplement labouclenormale avec unensemble d'arguments qui y sontpassés. Puis réinitialisez la requête à lafin.
<?php // makes query respect paging rules $paged = get_query_var('paged'); // defining the arguements for the custom loop $variablenameQuery = array( 'post_type' => 'seating-charts', 'post_status' => 'publish', 'cust_tax_name' => 'custom-tax-term', 'posts_per_page' => -1, // neg 1 means all posts 'orderby' => 'date', 'order' => 'ASC', 'paged' => $paged, ); // end query // pass result into query_posts to get result query_posts($variablenameQuery); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php // Individual Post Styling ?> <?php endwhile; ?> <?php // paged navigation - next post, previous post... ?> <?php else : ?> <h3>Ooops looks like there was an issue. Please <a href="<?php echo get_option('home'); ?>/contact" title="Contact Us">get in touch</a> with us and we'll get the problem fixed.</h3> <?php endif; ?> <!-- resets the WordPress Query --> <?php wp_reset_query(); ?>
When querying posts just use the normal loop with a set of arguments passed into it. Then reset the query at the end.
<?php // makes query respect paging rules $paged = get_query_var('paged'); // defining the arguements for the custom loop $variablenameQuery = array( 'post_type' => 'seating-charts', 'post_status' => 'publish', 'cust_tax_name' => 'custom-tax-term', 'posts_per_page' => -1, // neg 1 means all posts 'orderby' => 'date', 'order' => 'ASC', 'paged' => $paged, ); // end query // pass result into query_posts to get result query_posts($variablenameQuery); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php // Individual Post Styling ?> <?php endwhile; ?> <?php // paged navigation - next post, previous post... ?> <?php else : ?> <h3>Ooops looks like there was an issue. Please <a href="<?php echo get_option('home'); ?>/contact" title="Contact Us">get in touch</a> with us and we'll get the problem fixed.</h3> <?php endif; ?> <!-- resets the WordPress Query --> <?php wp_reset_query(); ?>
-
Merci,celafonctionne.Maisjustepour comprendre,savez-vouspourquoi `setup_postdata ()`ne semblepasfonctionner?L'ai-jemal utilisé?Thanks, this works. But just for understanding, do you know why `setup_postdata()` does not seem to work? Did I use it wrongly?
- 0
- 2011-02-19
- Jiew Meng
-
@jiewmeng - Voir si l'utilisation de `$post` au lieu de` $ cp` résout leproblème.@jiewmeng - See if using `$post` instead of `$cp` fixes the problem.
- 1
- 2011-02-20
- t31os
-
Je votepour le correctifproposépar @t31os.Lesexemples sur le codexmontrent l'utilisation comme çaet $postest une variable spéciale dans WordPress doncilpourraitfaireplus à l'intérieur d'uneboucle que ce que vous avez utilisé.I vote for the fix @t31os suggests. The examples on the codex show the usage like that and $post is a special variable in WordPress so it might do more inside a loop than what you've used.
- 0
- 2011-02-20
- curtismchale
-
@t31os,@curtismchale,celane semblaitpasfonctionnernonplus.Ça donnetoujours lemême résultat@t31os, @curtismchale, that didn't appear to work too. It still gives the same result
- 0
- 2011-02-20
- Jiew Meng
Jene saispaspourquoimaisj'ai utilisé
get_posts()
pourinterroger certaines données. Ensuite,j'ai utilisésetup_postdata()
... Jepense que c'est utilisépour queje puisse utiliser desfonctions commethe_permalink()
etc avec lesnouvelles donnéespost?maisil semble que seul
the_excerpt
contient lanouvelle valeur des données depublication,pourquoi? Jetrouve que sij'utiliseecho get_the_permalink($cp)
celafonctionnebien. Maisje pense que la versionplus courte serameilleure