web-dev-qa-db-fra.com

Affichage d'un espace réservé/img par défaut, si aucune image sélectionnée n'est définie

Je dois modifier le code suivant pour afficher un espace réservé s'il n'y a pas d'image sélectionnée disponible.

Je comprends que je dois ajouter une instruction if dans le code suivant, mais je ne suis pas sûr du codage exact dont j'avais besoin. Évidemment, dans un langage simple, cela va dans le sens de s'il y a une vignette pour la montrer, sinon pour montrer l'espace réservé.

<?php $rel = $related->show(get_the_ID(), true);
     $count = 1;
    foreach ($rel as $r) {
     $class= ($count%6 == 0)?"category-related-item-right":"";

     echo '<div class="category-related-item '.$class.'"><a href='.get_permalink($r->ID).'>'.'<div class=category-related-title>'.$r->post_title.'</div>'.get_the_post_thumbnail($r->ID, array(50,50)).'</a></div>';
$count++;
}?>

J'ai essayé ce qui suit, mais quelque chose ne va pas, ça brise la page ...

<?php $rel = $related->show(get_the_ID(), true);
$count = 1;
foreach ($rel as $r) {
$class= ($count%6 == 0)?"category-related-item-right":"";

echo '<div class="category-related-item '.$class.'"><a href='.get_permalink($r->ID).'>'.'<div class=category-related-title>'.$r->post_title.'</div>';
if (get_the_post_thumnail($r->ID)) : 
get_the_post_thumbnail($r->ID, array(50,50));
else :
echo '<img src="image_url"/>';
endif;
echo '</a></div>';
$count++;
}?>
2
Vince Pettit

Mauvaise orthographe de thumbnail (thumnail) dans l'instruction if.

De plus, get_the_post_thumbnail fait écho à la vignette, mais renvoie simplement le code HTML. Vous devez y faire écho.

En outre, pour vérifier si un message a une vignette, vous pouvez utiliser has_post_thumbnail .

 if ( has_post_thumbnail($r->ID)) {
    echo get_the_post_thumbnail($r->ID, array(50,50));
 }else{
    echo '<img src="image_url"/>';
 }
4
Stephen Harris

Pour les concepteurs qui ont peu ou pas de connaissances et des staters gratuits dans wordpress pour obtenir du code image est donnée ici Les concepteurs peuvent simplement copier WordPress pour obtenir du code d’image et le coller.

if ( has_post_thumbnail($post->ID) ){   
    $image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
    $image = $image[0];
    echo '<div id="product" class="MagicZoomPlus" href="'.$image.'" rel="selectors-class: Active"><img src="'.$image.'" alt="" /></div>';
}else{  
    $image = get_template_directory_uri() .'/img/placeholder-580.png'; 
    echo '<a id="product" class="MagicZoomPlus" href="'.$image.'" rel="selectors-class: Active"><img src="'.$image.'" alt="" /></a>';
}
1
Bipin Sapkota

Une fonction pour ajouter des images par défaut pour les thèmes

Le code suivant peut également être trouvé sur Trac en tant que Ticket 1).

1) S'il vous plaît ajoutez-vous comme @cc il pour le soutenir. Merci!

Ticket Link

Utilisation de la fonction wp_default_img():

Il fonctionne avec un tableau d'attributs d'entrée et offre deux filtres (wp_default_img_attr & wp_default_img). Donc, configurer des images par défaut est aussi simple que d’utiliser un filtre (si le développeur du thème n’est pas satisfait des fonctions arg par défaut) et enfin d’ajouter…

// functions.php during init:
add_image_size( 'default_img', 80, 80, true );

// Inside some template
$placeholder = get_site_url( null, 'your_path' ).'/some_img.jpg';
echo wp_default_img( array( 'url' => $placeholder, 'size' => 'default_img' ) );

La fonction se soucie également du rognage des images si le 4ème argument est défini sur true lors de l'enregistrement de la taille à l'aide de add_image_size () ;.

function wp_default_img( $attr )
{
        // Sizes registered via add_image_size();
        global $_wp_additional_image_sizes;

        $defaults = array(
             'size'     => 'medium'
            ,'classes'  => false
            ,'alt'      => false
            ,'title'    => false
            ,'align'    => 'none'
            ,'echo'     => true 
        );

        $attr = wp_parse_args( $attr, $defaults );

        if ( 'thumb' === $attr['size'] )
            $attr['size'] = 'thumbnail';

        // Size in built in sizes - call size setting from DB
        # behavoir in here, dependent on outcome of @link http://core.trac.wordpress.org/ticket/18947
        if ( ! in_array( $attr['size'], array_keys( $_wp_additional_image_sizes ) ) )
        {
            $sizes                        = get_intermediate_image_sizes();
            // Get option - gladly autoloaded/can use wp_cache_get();
            $size_data['width']  = intval( get_option( "{$attr['size']}_size_w") );
            $size_data['height']= intval( get_option( "{$attr['size']}_size_h") );
            // Not sure how this will behave if cropped is false (autoloaded option not added)
            $size_data['crop']    = get_option( "{$attr['size']}_crop" ) ? get_option( "{$attr['size']}_crop" ) : false;
        }
        // Size array from global registered additional/custom sizes array
        else 
        {
            $size_data = $_wp_additional_image_sizes[ $attr['size'] ];
        }

        // Retrieve image width & height
        $img_info       = @getimagesize( $attr['url'] );

        // Calculate final dimensions - if "crop" was set to true during add_image_size(), the img will get ... cropped
        $end_sizes      = image_resize_dimensions( $img_info[0], $img_info[1], $size_data['width'], $size_data['height'], $size_data['crop'] );

        // defaults to px units - can't get changed, as applying units is not possible
        $hwstring       = ' '.trim( image_hwstring( $end_sizes[4], $end_sizes[5] ) );

        // Attributes:
        // Not made required as users tend to do funky things (...and lock screen readers out)
        $attr['alt'] = $attr['alt'] ? ' alt="'.esc_attr( $attr['alt'] ).'"' : '';

        if ( ! $attr['title'] )
        {
            $mime = explode( "/", $img_info['mime'] );
            $attr['title'] = sprintf( __('default image of type: %1$s'), ucfirst( $mime[1] ) );
        }
        $attr['title'] = $attr['title'] ? ' title="'.esc_attr( $attr['title'] ).'"' : '';

        $attr['classes'] = "wp-img-default ".esc_attr( $attr['classes'] ? $attr['classes'] : '' );
        $attr['align'] = $attr['align'] ? "align".esc_attr( $attr['align'] ) : '';
        $attr['size'] = "size-".esc_attr( $attr['size'] );

        // Allow filtering of the default attributes
        $attributes  = apply_filters( 'wp_default_img_attr', $attr );

        // Build class attribute, considering that maybe some attribute was unset via the filter
        $classes  = ' class="';
        $classes .= 'wp-img-default'.esc_attr( $attr['classes'] ? ' '.$attr['classes'] : '' );
        $classes .= $attr['align'] ? ' '.esc_attr( $attr['align'] ) : '';
        $classes .= $attr['size'] ? ' '.esc_attr( $attr['size'] ).'" ' : '" ';

        $url        = trim( $attr['url'] );
        $image      = "<img src='{$url}'{$hwstring}{$classes}{$attr['alt']}{$attr['title']} />";

        // Allow filtering of output
        $image      = apply_filters( 'wp_default_img', $image );

        if ( ! $attr['echo'] )
            return $image;

        return print $image;
}
0
kaiser