ID der Umfrage aus der WP-database abrufen

Also habe ich eine php-Aussage:

$latest_pollsid , das eine Zahl enthält, die jedes Mal, wenn ein bestimmtes Formular $latest_pollsid , um 1 erhöht wird. Ich lese diese statement in mehrere functionen und für eine dieser functionen möchte ich, dass sie den Wert zur aktuellen Zeit erfasst und nicht aktualisiert. Im Wesentlichen möchte ich, dass die statement gelesen wird, wenn die function ausgeführt wird, die Zahl abrufen und dann anzeigen, ohne dass sie sich in der Zukunft ändert, selbst wenn sich der Wert der statement selbst ändert. Gibt es eine Möglichkeit, dies mit PHP zu tun?


Das Szenario:

Ich erstelle einen Beitrag im Hintergrund, wenn der Benutzer eine neue Umfrage erstellt, die die Umfrage, die sie gerade gemacht haben, mit einem Shortcode einbettet. Der Shortcode verwendet die neueste Umfrage, was bedeutet, dass, wenn ich morgen eine Umfrage erstelle und morgen eine Umfrage erstelle, morgen beide Beiträge eine Umfrage von morgen zeigen. Der heutige Beitrag wird die heutige Umfrage nicht zeigen.

Code zum Erstellen des Hintergrundposts:

 function programmatically_create_post() { // Initialize the page ID to -1. This indicates no action has been taken. $post_id = -1; // Setup the author, slug, and title for the post $author_id = 1; $slug = 'example-post'; $title = 'My Example Background Post'; // If the page doesn't already exist, then create it if( null == get_page_by_title( $title ) ) { // Set the post ID so that we know the post was created successfully $pollq_question = wp_kses_post( trim( $_POST['pollq_question'] ) ); $post_id = wp_insert_post( array( 'comment_status' => 'open', 'ping_status' => 'closed', 'post_author' => $author_id, 'post_name' => $slug, 'post_title' => $pollq_question, 'post_status' => 'publish', 'post_type' => 'post', 'post_content' => '[poll id="' . $latest_pollid . '"]' ) ); // Otherwise, we'll stop } else { // Arbitrarily use -2 to indicate that the page with the title already exists $post_id = -2; } // end if } // end programmatically_create_post add_filter( 'after_setup_theme', 'programmatically_create_post' ); 

PHP FUNKTIONSCODE:

 function polls_latest_id() { global $wpdb; $poll_id = $wpdb->get_var("SELECT pollq_id FROM $wpdb->pollsq WHERE pollq_active = 1 ORDER BY pollq_timestamp DESC LIMIT 1"); return intval($poll_id); } 

VERWALTEN UMFRAGEN CODE

Diese Seite verwaltet alle Umfragen mit den richtigen IDs, aber ohne PHP sehr gut zu verstehen, habe ich Mühe, dies zu interpretieren:

 echo "\n"; echo ''.number_format_i18n($poll_id).''."\n"; echo ''; if($current_poll > 0) { if($current_poll == $poll_id) { echo ''.__('Displayed:', 'wp-polls').' '; } } elseif($current_poll == 0) { if($poll_id == $latest_poll) { echo ''.__('Displayed:', 'wp-polls').' '; } } else if(in_array($poll_id, $multiple_polls)) { echo ''.__('Displayed:', 'wp-polls').' '; } 

Solutions Collecting From Web of "ID der Umfrage aus der WP-database abrufen"

Das erste Problem, das ich entdeckt habe, ist, dass Sie $latest_pollid nicht setzen, aber Sie versuchen trotzdem, das als Umfrage-ID zu verwenden. Sie sollten etwas wie: $latest_pollid = polls_latest_id(); vor dieser Zeile, um den Wert festzulegen.

Es gibt jedoch große Probleme mit dem, was Sie tun. Hooking nach after_setup_theme bedeutet, dass Ihr Code bei jedem Laden der Seite ausgeführt wird. Sie beschränken das meiste davon auf die Seite mit dem Titel “My Example Background Post”, aber ich vermute immer noch, dass Sie eine Verbindung zwischen dem Quiz und dem Post, den Sie erstellen, erhalten. Ich weiß nicht, wie ich das lösen soll, es sei denn, das Quiz-Plugin hat einen Haken, den Sie verwenden können, oder vielleicht haben die $_POST Daten Informationen, die relevant sein könnten.