Obtendo id de pesquisa a partir do database WP

Então eu tenho uma declaração php:

$latest_pollsid que contém um número que aumenta em 1 cada vez que um formulário específico é enviado. Estou lendo esta declaração em várias funções e, para uma dessas funções, gostaria que ela capture o valor no momento atual e não a atualização. Essencialmente, eu quero que ele leia a declaração quando a function é executada, pegue o número e, em seguida, mostre isso sem que ele mude no futuro mesmo quando o próprio valor da própria declaração muda. Existe uma maneira de fazer isso com o PHP?


O cenário:

Estou criando uma publicação em segundo plano quando o usuário cria uma nova pesquisa que incorpora a enquete que acabaram de fazer com um shortcode. O shortcode usa a última pesquisa, geralmente, significa que se eu criar uma enquete agora e criar uma enquete amanhã, amanhã, ambas as postagens mostrarão uma conferência de amanhã. A postagem de hoje não mostrará a sondagem de hoje.

Código usado para criar o post de fundo:

 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' ); 

CÓDIGO DE FUNÇÃO PHP:

 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); } 

GESTÃO DO CÓDIGO DE POLLAS

Esta página consegue listar todas as pesquisas com o ID correto, mas sem saber muito bem do PHP. Eu estou lutando para interpretar isso:

 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 "Obtendo id de pesquisa a partir do database WP"

O primeiro problema que $latest_pollid é que você não está configurando $latest_pollid mas, no entanto, está tentando usá-lo como o ID da pesquisa. Você deve ter algo como: $latest_pollid = polls_latest_id(); antes dessa linha, para definir o valor.

Há grandes problemas com o que você está fazendo. Hooking para after_setup_theme significa que seu código é executado em cada carga de página. Você está restringindo a maior parte da página à página intitulada “Meu Exemplo de Mensagem de Fundo”, mas ainda suspeito que você esteja obtendo uma desconexão entre o questionário e a publicação que você está criando. Eu não sei como resolver isso, a menos que o plugin do questionário tenha um gancho que você possa usar, ou talvez os dados $_POST tenham informações que possam ser relevantes.