Shortcode-Strategie

Ich möchte Daten aus einer anderen database in meine Posts einfügen und dachte über die Verwendung von Shortcodes nach. Ein Beispielbeitrag:

[imdb id="123" name] was born [imdb id="123" birthday] in [imdb id="123" birth_location]. 

Ich möchte die Ergebnisse zwischenspeichern und muss die Shortcode-Aktionen nicht mehr ausführen, sobald sie abgerufen wurden. Gibt es irgendwelche guten Strategien, um solche Dinge effizient zu machen?

Solutions Collecting From Web of "Shortcode-Strategie"

In jedem Fall müssen Sie die Daten, die Sie aus einer externen database abrufen, in Ihrer WordPress-database speichern, wenn Sie nicht jedes Mal, wenn auf die Seite zugegriffen wird, dieselbe Abfrage für Ihre externe database ausführen möchten.

Sie können die Daten entweder in Ihrer WordPress-database mit benutzerdefinierten Feldern (Post-Meta) mit functionen wie add_post_meta und update_post_meta oder über die Verwendung der Transient API update_post_meta die es Ihnen ermöglicht, diese Daten für eine bestimmte Zeit im Cache zu speichern, damit diese Daten ablaufen und aus Ihrer database gelöscht werden und die Abfrage optional auf Ihrer externen Quelle erneut ausgeführt werden.

Natürlich berücksichtigen Sie, dass Ihr Code eine bedingte Logik enthalten muss, für die Folgendes gilt:

if no transient data exists for the given data > fetch data from external source

Hier ist ein Beispielcode der verwendeten Transienten-API.

 < ?php // Get any existing copy of our transient data if ( false === ( $special_query_results = get_transient( 'special_query_results' ) ) ) { // It wasn't there, so regenerate the data and save the transient $special_query_results = new WP_Query( 'cat=5&order=random&tag=tech&post_meta_key=thumbnail' ); set_transient( 'special_query_results', $special_query_results ); } // Use the data like you would have normally... ?> 

Ersetzen Sie in Ihrer Instanz den Aufruf von WP_Query durch den der externen databasequelle.

Ihr Shortcode kann dann ein Wrapper sein, mit dem Sie Daten beliebig auf Post-Post-Basis einfügen können. Natürlich müssen Sie auch Ihren Shortcode erstellen, von dem Sie annehmen, dass Sie eine ungefähre Vorstellung davon haben.