web-dev-qa-db-fra.com

Wordpress: PHP rendu du code au mauvais endroit

J'essaie d'insérer un code php pour un post-rating sur wordpress. Auparavant, cela fonctionnait normalement et sur place. Maintenant, en utilisant ce code, au lieu de la note apparaissant après "Note de l'utilisateur:", le rendu est complètement sorti du div "anime-info" et s'affiche au-dessus.

Le code est ". The_ratings ()." Le code complet devrait être: mais ". If (function_exists ('the_ratings'))) {the_ratings ()}." N'a pas fonctionné et j'ai donc dû le modifier.

Voici le code complet. Fondamentalement, si l'ID de catégorie affecté à la publication en cours est 4, il affiche ce texte et une image. Si ce n'est pas le cas, il ne restitue qu'une image.

Aucune suggestion?

C'est le plugin que j'utilise http://wordpress.org/extend/plugins/wp-postratings/

Merci!

    <?php foreach((get_the_category()) as $category)
            { if($category->cat_ID = 4){ echo "<div class='anime-info'>
                    <div class='anime-inf left'>
                    <b>Anime Title:</b> ".get_post_meta( $post->ID, 'anime_title', true )."<br />
                    <b>Creator:</b> ".get_post_meta( $post->ID, 'anime_creator', true )."<br />
                    <b>Genres:</b> ".the_tags()." <br />
                    <b>Studio:</b> ".get_post_meta( $post->ID, 'anime_studio', true )."<br />
                    <b>First aired at:</b> ".get_post_meta( $post->ID, 'anime_firstaired', true )."<br />
                    <b># of Episodes:</b> ".get_post_meta( $post->ID, 'anime_episodes', true )."<br />
                    <b>Official Website:</b> ".get_post_meta( $post->ID, 'anime_website', true )."<br />
                    <b>Anime ii Rating:</b> ".get_post_meta( $post->ID, 'anime_revrating', true )."<br /> <br />
                    <b>User Rating:</b>" .  the_ratings() . "
                    </div>
                    <div class='post-image-inner right'>
                       img src='".get_bloginfo( 'template_directory' )."/timthumb.php?src=".get_post_meta( $post->ID, 'image_value', true )."&amp;w=225&amp;h=246&amp;zc=1' />
                        </div>
                        </div>"; 
                }else{ echo "<div class='post-image'><img src='".get_bloginfo('template_directory')."/timthumb.php?src=".get_post_meta( $post->ID, 'image_value', true )."&amp;w=529&amp;h=253&amp;zc=1' /></div>";
                                    }
                                }
                        ?>
1
Asaf

C'est parce que vous faites écho à une fonction qui elle-même fait écho à une valeur. La fonction a un paramètre d’affichage que vous devez définir sur false si vous voulez qu’elle soit return sa valeur l’utilise de la manière suivante:

function the_ratings($start_tag = 'div', $custom_id = 0, $display = true)

Également -

if($category->cat_ID = 4)

devrait être:

if($category->cat_ID == 4)
1
Milo

Juste the_rating () fonctionnera.

Sans regarder votre page générée, je ne suis pas sûr que ce soit un problème de style. Assurez-vous que ce bloc de code foreach est placé dans <?php while (have_posts()) : the_post(); ?>

0
Sean Lee