Wie man einen Teil PHP, HTML und Sql Code zur Variable hinzufügt und an $ content anfügt

Ich erstelle ein Plugin (mein erstes), das es dem Site-Administrator ermöglicht, die am häufigsten verwendeten Post-Tags über die letzten X Tage anzuzeigen. Dieses Plugin ist eine Weiterentwicklung der WP-Entwicklungsfrage hier – Liste der am häufigsten verwendeten Tags in den letzten 30 Tagen anzeigen .

Verzeihen Sie, dass ich den richtigen Jargon nicht kenne.

Ich habe die meiste Beinarbeit mit dem Admin-Menü usw. abgeschlossen, das einzige, was mir geblieben ist, ist, die Ergebnisse tatsächlich anzuzeigen.

Der folgende Codeschnipsel funktioniert, wenn ich ihn in die Datei single.php lege.

http://i.imgur.com/UzzXPFk.png

Ich bleibe dabei, diesen Code in eine Variable umzuwandeln, die an $content angehängt $content .

Im Moment habe ich nur eine sehr einfache Anzeigefunktion, um zu testen, dass die number_days und number_tags Einstellungen die auf der Einstellungsseite eingegebenen Werte anzeigen. Tun sie.

 function rpt_display_content ($content){ global $rpt_options; if(is_single()){ $rpt_display = '

' . $rpt_options['rpt_tags_days'] . $rpt_options['rpt_tags_number'] . '

'; $content .= $rpt_display; } return $content; } add_filter('the_content', 'rpt_display_content');

Solutions Collecting From Web of "Wie man einen Teil PHP, HTML und Sql Code zur Variable hinzufügt und an $ content anfügt"

Sie scheinen ziemlich nahe daran zu sein, alles aussortiert zu haben. Wenn Sie Ihre Abfragen in eine function einfügen und die Logik und die Präsentation trennen:

 < ?php function wpse_158425_get_terms(){ global $wpdb, $rpt_options; $wpdb->show_errors(); $rpt_days = $rpt_options['number_days']; $rpt_term_ids = $wpdb->get_col(" SELECT term_id FROM $wpdb->term_taxonomy INNER JOIN $wpdb->term_relationships ON $wpdb->term_taxonomy.term_taxonomy_id = $wpdb->term_relationships.term_taxonomy_id INNER JOIN $wpdb->posts ON $wpdb->posts.ID = $wpdb->term_relationships.object_id WHERE DATE_SUB(CURDATE(), INTERVAL $rpt_days DAY) < = $wpdb->posts.post_date "); if(count($rpt_term_ids) > 0){ $rpt_tags = get_tags(array( 'orderby' => 'count', 'order' => 'DESC', 'number' => $rpt_options['number_tags'], 'include' => $rpt_term_ids, )); } else { $rpt_tags = FALSE; } return $rpt_tags; } function wpse_158425_display_terms(){ global $rpt_options; $tags = wpse_158425_get_terms(); $recentTags = ''; return $recentTags; } function rpt_display_content ($content){ if(is_single()){ $rpt_display = wpse_158425_display_terms(); $content .= $rpt_display; } return $content; } add_filter('the_content', 'rpt_display_content'); ?> 

Sie können dies weiter vereinfachen, indem Sie wpse_158245_get_terms() akzeptieren, Variablen akzeptieren und die Optionen auf diese Weise übergeben und Standardvariablen wpse_158245_get_terms() .

Ich hatte keine Chance, das auszuführen, Sie könnten auf einige Objekt / Array-Fehler stoßen, aber Sie sollten gut gehen.

Das ist, was ich gefunden habe und es funktioniert genau wie erwartet. Als Neuling ist das eine bessere Lösung als die Lösung von Aris Blevins ? Wenn nicht, warum?

Ehrlich gesagt, weiss ich es nicht.

 < ?php /***** Display Functions *******/ function rpt_display_content ($content){ global $rpt_options; if(is_single()){ ob_start(); ?>  < ?php $content .= ob_get_clean(); } return $content; } add_filter('the_content', 'rpt_display_content'); ?>