Wie man einfachen Zusatz tut, um Lieblingszählungen meiner WordPress Pfosten zu erhöhen

Ich habe einen Code in meiner functions.php, der mir zeigt, wie viele Favoriten ein Beitrag hat.

function wpfp_get_current_count() { global $wpdb; $current_post = get_the_ID(); $query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta"; $query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID"; $query .= " WHERE post_status='publish' AND meta_key='wpfp_favorites' AND post_id = '".$current_post."'"; $results = $wpdb->get_results($query); if ($results) { foreach ($results as $o): echo $o->meta_value; endforeach; }else {echo( '0' );}} 

Und ich verwende den folgenden Code, um die Zählung zu erreichen, und es funktioniert gut.

  

Jetzt möchte ich standardmäßig 300 Favoriten hinzufügen. Also, wenn meine aktuellen Favoriten 33 sind, dann wird der Gesamtfavorit 333. Ich schätze, ich brauche eine Lektion über einige grundlegende PHP-Ergänzungen. Wenn möglich, schlagen Sie mir einen modifizierten Code vor. Ich habe den folgenden Code ausprobiert, aber der Zusatz passiert nicht. Um ehrlich zu sein, habe ich diese Frage früher hier auf wordpress.org frorum gestellt, konnte aber keine Antwort erhalten. Bitte helfen Sie.

Solutions Collecting From Web of "Wie man einfachen Zusatz tut, um Lieblingszählungen meiner WordPress Pfosten zu erhöhen"

Sie können es einfach tun, indem Sie 300 beim Anzeigen der Anzahl hinzufügen, wie im folgenden Code gezeigt:

 < ?php echo 'TOTAL POST VIEWS: ' .(intval(wpfp_get_current_count()) + 300); ?> 

und anstatt die Werte in function zu wiederholen, geben Sie sie wie im folgenden Code gezeigt zurück:

 function wpfp_get_current_count() { global $wpdb; $current_post = get_the_ID(); $query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta"; $query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID"; $query .= " WHERE post_status='publish' AND meta_key='wpfp_favorites' AND post_id = '".$current_post."'"; $results = $wpdb->get_results($query); if ($results) { foreach ($results as $o): return $o->meta_value; endforeach; }else { return 0;}} 

Weitere Informationen zur function intval () finden Sie auf dieser Seite .

Die WPDB-class verfügt über eine function, die speziell dafür ausgelegt ist, einen Wert aus einer Abfrage zurückzugeben. $wpdb->get_var() gibt einen einzelnen Wert oder null zurück, wenn kein Ergebnis vorhanden ist.

Ich werde ein alternatives Codebeispiel für die function bereitstellen, damit Sie sehen können, dass es sich auf eine andere Weise nähert.

 function wpfp_get_count( $id = false ) { global $wpdb; if( !$id ) $id = get_the_ID(); $favorite_count = $wpdb->get_var( $wpdb->prepare( " SELECT CAST(COALESCE(pm.meta_value,0) AS UNSIGNED) FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} p ON pm.post_id = p.ID WHERE p.post_status = 'publish' AND pm.meta_key = 'wpfp_favorites' AND p.post_id = %d LIMIT 1 ", $id ) ); if( !$favorite_count ) return 300; return $favorite_count + 300; } 

Wir casting den Meta-Wert direkt innerhalb der Abfrage auf eine Ganzzahl und behandeln auch den Null-Wert, der von der Verknüpfung zurückgegeben wird (sagen wir, wenn kein Datensatz für die Verknüpfung vorhanden ist).

Nicht sicher, warum Sie 300 zum Ergebnis hinzufügen möchten, aber das ist, was Sie gefragt haben, also ich habe es direkt in die function eingefügt (es könnte auch ein zweiter Parameter in der function sein, wenn Sie verschiedene Beträge hinzufügen wollten, abhängig davon, wo Sie waren nennen).

Mehr zur WPDB-class finden Sie hier .

Beispielverwendung:

 < ?php printf( 'TOTAL FAVORITES: %d', wpfp_get_count() ); ?> 

oder wenn Sie eine ID weitergeben möchten ..

 < ?php printf( 'TOTAL FAVORITES: %d', wpfp_get_count( $var_with_id ) ); ?> 

Ich hoffe, das hilft.