IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

Syntaxe de condition PHP


Sujet :

WordPress PHP

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut Syntaxe de condition PHP
    Bonjour à tous.

    Je travaille actuellement sur un site web avec Wordpress. Sur une page, je souhaite afficher uniquement les articles ayant une image.
    Le problème est que : quand je pose la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php 
    if (have_posts()) : while (have_posts()) : the_post(); 
    if( has_post_thumbnail() ) {
    ?>
    <section id="post-<?php the_ID(); ?>"<?php post_class( 'clearfix' . $col_class .' sub-header-'.$display_header.$sub_header_class ); ?>>
    <section itemprop="articleBody">
    <?php the_content();?>
    </section>
    </section>
    <?php } endwhile; ?>
    Comme ci dessus, plus rien ne s'affiche. Quelque soit l'endroit où je pose la condition, il y a un bug et la page s'affiche blanc.
    Pourrais-je avoir quelque suggestions afin de régler ce problème ?

    Je tiens à préciser que je suis actuellement à mon premier stage en entreprise donc je suis encore débutante dans le domaine..

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je suis surpris par cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (have_posts()) : while (have_posts()) : the_post();
    Tu as regardé tes logs PHP pour voir s'il y avait des erreurs ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Euh non.. Je ne sais pas comment je pourrais vérifier cela.. ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si ton serveur n'affiche pas les erreurs, il y a surement un fichier de log qui les contient.
    Cela depend de ton serveur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Je n'ai vu aucun fichier signalant d'erreurs avec Wordpress sur le serveur..

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    1- ne mélange pas les styles. Si tu optes pour la syntaxe alternative (qui est la syntaxe recommandée dans les templates WP), utilise-la tout le temps, ça facilite la visibilité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if( has_post_thumbnail() ) { 
    //
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if( has_post_thumbnail() ):
    endif;
    2- has_post_thumbnail() retourne true si le post a une featured image uniquement. Si tes posts ont des images ordinaires, tu n'auras aucun résultat.
    3- Ouvre wp-config.php et cherche WP_DEBUG. Si tu le trouves, change
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('WP_DEBUG', false);
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('WP_DEBUG', true);
    .
    Si tu ne le trouves pas, ajoute tout en bas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    define('WP_DEBUG', true);
    Et ouvre ta page. Tu devrais avoir maintenant des messages d'erreurs.

    Attention! Une fois ton problème résolu, supprime la ligne define('WP_DEBUG', true); ou mets-là à false.

  7. #7
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    J'ai suivi vos instructions : aucun article n'est affiché et aucun message erreur ne s'affiche.

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    - Est-ce que tu as des posts qui ont des featured images?
    - en enlevant la clause has_post_thumbnail(), est-ce que les posts s'affichent?

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Oui ce sont des featured images et lorsque j'enlève la condition has_post_thumbnail() les posts s'affichent à nouveau.

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    -il te manque un endif à la fin (peut-ne l'as-tu pas copié ici).
    - tu as bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     add_theme_support('post-thumbnails');
    dans le functions.php de ton thème? (si tu as les featured images, ça devrait être le cas).
    - Essaie ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(has_post_thumbnail(get_the_ID()))
    Et si ça ne marche pas, prends l'Id d'un post avec une featured image. Tu trouveras l'id dans l'url de la page d'édition du post:
    /wp-admin/post.php?post=XXXX&action=edit

    XXXX est l'id.

    et essaie ceci en dehors de la loop, avant if (have_posts()) : while (have_posts()) : the_post();

    Supposons que l'Id est 202:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(has_post_thumbnail(202)) {
      get_the_post_thumbnail(202);
    }

  11. #11
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Non je ne l'avais pas copié dans mon message mais il est bien dans mon fichier php.
    J'ai vérifié et oui j'ai bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add_theme_support('post-thumbnails');
    J'ai tenté de mettre la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (have_posts()) : while (have_posts()) : the_post();
    if(has_post_thumbnail(get_the_ID()))
    Et cela n'a pas fonctionné malheureusement..
    Ensuite j'ai récupéré comme vous le demandez l'ID d'un post qui possède un featured image et cela n'affiche pas mon post.
    Cependant j'ai demandé à afficher un message comme tel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(has_post_thumbnail(202)) {
      get_the_post_thumbnail(202);
      echo "Salut salut ! " ;
    }
    Et je vois bien le Salut salut ! sur ma page...

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Oups. Utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo get_the_post_thumbnail(202);
    Et tu devrais voir apparaître l'image.

    Et Si tu fais ensuite ton "salut salut" dans le code d'origine? Est-ce qu'il s'affiche?

  13. #13
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Je vois bien l'image sur ma page , oui.
    Et oui il s'affiche.

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bizarre tout ça.

    À la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( has_post_thumbnail() )  { // et tout le code entre accolades }
    fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(has_post_thumbnail());
    Si les résultats donnent true, supprime ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php post_class( 'clearfix' . $col_class .' sub-header-'.$display_header.$sub_header_class ); ?>
    C'est peut-être le contenu de ces variables qui met le souk.

  15. #15
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Ceci m'a donné : bool(false)

  16. #16
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    J'ai testé et ton code marche parfaitement chez moi.

    Est-ce qu'il y a autre chose dans index.php (ou le fichier dans lequel tu as mis le code).

    Tout en haut de ton code, juste après le<?php , ajoute:
    Si ça ne marche pas, il va falloir que tu postes l'intégralité du code de ta page.

  17. #17
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Cela ne fonctionne pas.. Voici donc ma page php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
    get_header(); 
     
    $page_options = get_post_meta(get_the_id(),'electrify_page_options');
    if( !empty($page_options)){
    	extract($page_options[0]);
    }
     
    //Layout Options
    $sidebar_position = isset($sidebar_position) ? $sidebar_position : "no_sidebar";
     
     
    if (class_exists('Woocommerce')) {
    	if( (is_cart() || is_checkout() || is_account_page())  && $sidebar_position == "full_width"){
    		$sidebar_position = "no_sidebar";
    	}
    }
     
    $selected_sidebar_replacement = isset($selected_sidebar_replacement) ? $selected_sidebar_replacement : '0';
     
    $col_class = ( $sidebar_position == "right" || $sidebar_position == "left" ) ? ' col-md-9' : '';
     
    //Sub Header Options
    $pix_header_text = isset($pix_header_text) ? $pix_header_text : 'left';	
    $header_size = isset($header_size) ? $header_size : 'small';
    $pix_header_styles = isset($pix_header_styles) ? $pix_header_styles : 'color';
    $header_bg_image = isset($header_bg_image) ? $header_bg_image : '';
    $header_bg_color = isset($header_bg_color) ? $header_bg_color : 'f1f2f2';
    $header_text_color = isset($header_text_color) ? $header_text_color : '';
    $display_header = isset($display_header) ? $display_header : 'show';
    $hide_breadcrumbs = isset($header_breadcrumbs) ? $header_breadcrumbs : 'show';
     
     
    //rebuilding image
    if(!empty($header_bg_image)){
    	$header_bg_image = htmlspecialchars_decode($header_bg_image);
    	$header_bg_image = json_decode($header_bg_image,true);
    	if(is_array($header_bg_image) && !empty($header_bg_image))
    		$header_bg_image = $header_bg_image[0]['full'];
    }
     
    if($display_header == "show"){
    	subBanner(get_the_title());
    }
    $sub_header_class = ' ';
    $sub_header_class .= isset($smof_data['header_option']) ? 'content-'.$smof_data['header_option'] : 'header1';
    $header_trans = isset($smof_data['header_transparency']) ? $smof_data['header_transparency'] : 0;
     
    if($header_trans){
    	$sub_header_class .= ' sub-header-trans';
    }
     
    if($sidebar_position != 'full_width'){
    ?>
     
    <div class="container boxed">
    	<div class="row">
     
    <?php } ?>
     
    		<?php
    		if($sidebar_position == "left" ){
    			get_sidebar();	
    		}
     
    		if (have_posts()) : while (have_posts()) : the_post();
    			if(has_post_thumbnail()):
    		?>
     
    		<section id="post-<?php the_ID(); ?>" <?php post_class( 'clearfix' . $col_class .' sub-header-'.$display_header.$sub_header_class ); ?>>
    			<section itemprop="articleBody">
    				<?php the_content();?>
    			</section>
     
    		</section>
     
    		<?php endif; endwhile; else : ?>
     
    				<article id="post-not-found" class="hentry clearfix">
    					<header class="article-header">
    						<h1><?php _e( 'Oops, Post Not Found!', 'pixel8es' ); ?></h1>
    					</header>
    				</article>
     
    		<?php endif; 
     
    		if($sidebar_position == "right" ){ 
    			get_sidebar();
    		} 
     
    		if($sidebar_position != 'full_width'){
     
    		?>
     
    	</div>
    </div>
     
    <?php } ?>
    <?php get_footer(); ?>

  18. #18
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Hum. Je ne vois pas ce qui cloche. Est-ce que tu vois le message Oops, Post Not Found! quand il n'y a pas de post?

    Remplace le code avec ceci pour voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $query = new WP_Query( 'p=' . get_the_ID() );
     
    if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
        if(has_post_thumbnail()):
            ?>
     
            <section id="post-<?php the_ID(); ?>" <?php post_class( 'clearfix' . $col_class .' sub-header-'.$display_header.$sub_header_class ); ?>>
                <section itemprop="articleBody">
                    <?php the_content();?>
                </section>
     
            </section>
     
        <?php endif; endwhile; else : ?>

  19. #19
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Avant non cela n'affichait rien du tout..
    Avec ce code ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $query = new WP_Query( 'p=' . get_the_ID() );
     
    if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post();
        if(has_post_thumbnail()):
            ?>
     
            <section id="post-<?php the_ID(); ?>" <?php post_class( 'clearfix' . $col_class .' sub-header-'.$display_header.$sub_header_class ); ?>>
                <section itemprop="articleBody">
                    <?php the_content();?>
                </section>
     
            </section>
     
        <?php endif; endwhile; else : ?>
    J'ai le message Oops, Post Not Found! qui apparait..

  20. #20
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 16
    Par défaut
    Lorsque j'ai inséré ce code dans ma page cela m'a affiché un message ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    ini_set('display_errors', 1); 
    error_reporting(E_ALL); 
    ?>
    Notice: get_the_excerpt est appelé avec un argument qui est déprécié depuis la version 2.3, aucune alternative n’est disponible. in /homepages/16/d430715818/htdocs/wp-includes/functions.php on line 3195

    Est ce en rapport avec mon problème ??

Discussions similaires

  1. [PostgreSQL] [PostgreSQL] Problème de syntaxe (NULL) avec PHP et Postgresql
    Par el_butcho dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 16/07/2006, 18h28
  2. [SQL] probleme de syntaxe sql avec php
    Par kaygee dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/06/2006, 14h32
  3. [PHP-JS] Popup Javascript sous condition PHP
    Par franfr57 dans le forum Langage
    Réponses: 3
    Dernier message: 16/05/2006, 15h29
  4. Réponses: 8
    Dernier message: 10/11/2005, 15h58
  5. Syntaxe de condition
    Par Silvia12 dans le forum Général Python
    Réponses: 3
    Dernier message: 02/11/2005, 08h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo