Come ottenere l'ID della Pagina corrente e utilizzarlo nella funzione get_page?
Esempio del codice:
$page_id = 116; // 123 dovrebbe essere sostituito con l'ID specifico della Pagina del tuo sito, che puoi trovare passando il mouse sul link per modificare quella Pagina nella pagina di amministrazione Gestione Pagine. L'id sarà incorporato nella stringa di query dell'URL, es. page.php?action=edit&post=123.
$page_data = get_page( $page_id ); // Devi passare una variabile alla funzione get_page. Se passi un valore (es. get_page( 123 ); ), WordPress genererà un errore.
$content = apply_filters('the_content', $page_data->post_content); // Ottieni il Contenuto e mantieni i filtri WordPress come i tag dei paragrafi. Origine da: http://wordpress.org/support/topic/get_pagepost-and-no-paragraphs-problem
$title = $page_data->post_title; // Ottieni il titolo
echo $title; // Visualizza il Titolo
echo $content; // Visualizza il Contenuto
?>
Invece di 166
(che è stato inserito manualmente), vorrei recuperare l'ID della pagina corrente.
Quando uso $page_id = $post -> ID recupera il titolo e il contenuto del primo post del loop sottostante (questa è la pagina dei post):
<div class="container">
<?php // trova tutti i contenuti che hanno il tipo di video e poi li cicla ?>
<?php query_posts('showpost'); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php if ( is_front_page() ) { ?>
<h2 class="entry-title"><?php the_title(); ?></h2>
<?php } else { ?>
<h1 class="entry-title"><?php the_title(); ?></h1>
<?php } ?>
<div class="entry-content">
<?php the_content(); ?>
<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
<?php edit_post_link( __( 'Modifica', 'twentyten' ), '<span class="edit-link">', '</span>' ); ?>
</div><!-- .entry-content -->
</div><!-- #post-## -->
<?php comments_template( '', true ); ?>
<?php endwhile; ?>
</div>
Vorrei recuperare il codice della pagina corrente dinamicamente (che è 116).
Qual è il codice per ottenere questo risultato?

Da un rapido test $wp_query->get_queried_object_id()
dovrebbe ottenere l'ID della pagina quando quella pagina è impostata come pagina degli articoli.
Probabilmente si tratta di un problema di tempismo: deve essere eseguito abbastanza tardi da essere disponibile, ma abbastanza presto da non interferire con il ciclo degli articoli. Proverei a catturarlo presto (nell'hook template_redirect
o intorno a quello) e memorizzarlo in una variabile globale da utilizzare successivamente.

Ci sono due metodi, a seconda che tu stia lavorando all'interno o all'esterno del loop.
All'interno: $page_id = $post->ID; (che hai già menzionato, senza successo, quindi assumerò che tu stia provando l'alternativa che è...)
All'esterno: $page_id = $wp_query->post->ID;

non importa cosa faccia, continua a recuperare i post del loop sotto quella funzione.

Se stai utilizzando quel secondo blocco di codice nella stessa pagina della tua funzione get_page, è molto probabile che sia la funzione query_posts a causare problemi. Dovrai creare una query personalizzata o resettare il loop. Prova a commentare il secondo blocco nel template (per evitare l'esecuzione del php) per vedere se funziona.

Per quelli di voi per cui questo ancora non funziona, sarà necessario utilizzare qualche tipo di add_action (potete scegliere quale volete usare). Nel mio esempio, questo restituirà l'ID della pagina corrente senza problemi, indipendentemente dal fatto che ci si trovi in una cartella di plugin, nel functions.php o altrove.
add_action('template_redirect', 'showid');
function showid(){
global $wp_query;
$theid = intval($wp_query->queried_object->ID);
echo $theid;
}
Buona fortuna e buon coding!
