Und es funktioniert gut, wenn ich den Shortcode hinzufüge [woo_reviews] dazu Testseite.
Wie ändere ich dies, um nur 5 zufällige Bewertungen zu erhalten?
Wie würde ich diese Seite jetzt auch formatieren, damit sie nur 5 Bewertungen enthält und das Erscheinungsbild der Bewertungen auf der Seite ändern kann (Abstand, Schriftart usw.)?
Mit dem Kommentar WP_Comment_Query, Kommentare dürfen nicht in zufälliger Reihenfolge sein. Sie müssen also stattdessen eine einfache, leichte SQL-Abfrage verwenden, indem Sie dediziertes WordPress verwendenWPDB Klasse.
Im folgenden Code können Sie die Stile und die HTML-Struktur ändern, um die gewünschte Ausgabe zu erhalten. Sie können auch die Anzahl der Bewertungen festlegen, die Sie in zufälliger Reihenfolge anzeigen möchten, indem Sie das verfügbare Shortcode-Argument verwenden “Grenze” (Standard ist eingestellt auf 5):
add_shortcode('woo_reviews', 'get_random_woo_reviews');
function get_random_woo_reviews( $atts ){
// Shortcode Attributes
$atts = shortcode_atts( array(
'limit' => '5', // <== Set to 5 reviews by default
), $atts, 'woo_reviews' );
global $wpdb;
// The SQL random query on product reviews
$comments = $wpdb->get_results( $wpdb->prepare("
SELECT *
FROM {$wpdb->prefix}comments c
INNER JOIN {$wpdb->prefix}posts p ON c.comment_post_ID = p.ID
WHERE c.comment_type="review" AND p.post_status="publish"
ORDER BY RAND() LIMIT %d
", intval( esc_attr($atts['limit']) ) ) );
ob_start(); // Start buffering
## CSS applied styles
?>
<style>
ul.product-reviews, ul.product-reviews li { list-style: none; margin:0; padding:0; line-height: normal;}
ul.product-reviews li { display:block; max-width: 200px, padding: 10px; display:inline-block; vertical-align: text-top;}
ul.product-reviews li .title {font-size: 1.2em;}
ul.product-reviews li .content {max-width: 180px; font-size: 0.9em; margin-bottom: 6px;}
ul.product-reviews li .author, ul.product-reviews li .date {display: block; font-size: 0.75em;}
</style>
<?php
## HTML structure
?>
<ul class="product-reviews"><?php
foreach ( $comments as $comment ) {
?>
<li>
<h4 class="title"><?php echo get_the_title( $comment->comment_post_ID ); ?></h4>
<div class="content"><?php echo $comment->comment_content; ?></div>
<span class="author"><?php printf( __("Posted By %s") . ' ', '<strong>' . $comment->comment_author . '</strong>' ); ?></span>
<span class="date"><?php printf( __("On %s"), '<strong>' . date_i18n( 'l jS \of F Y', strtotime( $comment->comment_date) ) . '</strong>' ); ?></span>
</li>
<?php
}
?></ul><?php
return ob_get_clean(); // Return the buffered output
}
Der Code wird in die function.php-Datei Ihres aktiven untergeordneten Designs (oder aktiven Designs) eingefügt. Getestet und funktioniert.
VERWENDUNGSZWECK:[woo_reviews] oder in php: echo do_shortcode( "[woo_reviews]" );
9164700cookie-checkWooCommerce: Zeigen Sie einige Bewertungen zufällig auf der Startseite anyes