Como obter o ID atual da página específica e usá-lo em uma função get_page?

3

Exemplo do código:

$page_id = 116; // 123 should be replaced with a specific Page's id from your site, which you can find by mousing over the link to edit that Page on the Manage Pages admin page. The id will be embedded in the query string of the URL, e.g. page.php?action=edit&post=123.
$page_data = get_page( $page_id ); // You must pass in a variable to the get_page function. If you pass in a value (e.g. get_page ( 123 ); ), Wordpress will generate an error.

$content = apply_filters('the_content', $page_data->post_content); // Get Content and retain Wordpress filters such as paragraph tags. Origin from: http://wordpress.org/support/topic/get_pagepost-and-no-paragraphs-problem
$title = $page_data->post_title; // Get title
echo $title; // Output Content
echo $content; // Output Content
?>

Em vez de 166 (que foi inserido manualmente), gostaria de recuperar o ID da página atual.

Quando eu faço $ page_id = $ post - > ID recupera o título e o conteúdo do primeiro post do loop abaixo (esta é a página de posts):

<div class="container">
                <?php // find all content that has the type of video and then to loop through them. ?>
                <?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( __( 'Edit', 'twentyten' ), '<span class="edit-link">', '</span>' ); ?>
                                        </div><!-- .entry-content -->
                                    </div><!-- #post-## -->

                                    <?php comments_template( '', true ); ?>

                    <?php endwhile; ?>
        </div>

Eu gostaria de recuperar o código da página atual dinamicamente (que é 116).

Qual é o código para realizar isso?

    
por janoChen 26.01.2011 / 11:12

4 respostas

4

Do teste rápido, $wp_query->get_queried_object_id() deve obter o ID da página quando essa página estiver configurada para ser uma página de postagens.

Esta é provavelmente a questão do tempo de atraso que está disponível, mas cedo o suficiente para que o loop de posts não interfira. Eu tentaria capturá-lo cedo (em template_redirect hook ou em torno disso) e armazenar em variável global para usar mais tarde.

    
por Rarst 27.03.2011 / 15:17
3
global $wp_query;
$page_id = $wp_query->get_queried_object_id();

mas se você estiver usando uma página personalizada para postagens, onde você está adicionando esse código?

    
por onetrickpony 26.01.2011 / 12:59
1

Existem dois métodos, dependendo se você está fazendo isso dentro ou fora do loop.

Dentro: $ page_id = $ post- > ID; (que você mencionou, sem sucesso, então eu vou assumir que você está tentando a alternativa que é ...)

Fora: $ page_id = $ wp_query- > código post >

    
por Mike Hudson 26.01.2011 / 11:52
1

eu substituí:

$page_id = [id of post];

com:

$page_id = $wp_query->get_queried_object_id();

Trabalhou para mim!

    
por psycho_nude 07.10.2011 / 19:46

Tags