it-swarm.com.de

Wie kann ich die aktuelle ID einer bestimmten Seite abrufen und in einer get_page-Funktion verwenden?

Beispiel des Codes:

$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
?>

Anstelle von 166 (der manuell eingegeben wurde) möchte ich die ID der aktuellen Seite abrufen.

Wenn ich $ page_id = $ post -> ID mache, ruft es den Titel und den Inhalt des ersten Posts der Schleife unten ab (dies ist die Postseite):

<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>

Ich möchte den Code der aktuellen Seite dynamisch abrufen (das ist 116).

Was ist der Code, um das zu erreichen?

3
janoChen

Beim Schnelltest sollte $wp_query->get_queried_object_id() die Seiten-ID erhalten, wenn diese Seite als Posts-Seite festgelegt ist.

Dies ist wahrscheinlich das Problem, dass der Zeitplan so spät ist, dass er verfügbar ist, aber so früh, dass die Postschleife nicht stört. Ich würde versuchen, es früh zu erfassen (in template_redirect hook oder darum herum) und in einer globalen Variablen zu speichern, um es später zu verwenden.

4
Rarst
global $wp_query;
$page_id = $wp_query->get_queried_object_id();

aber wenn Sie eine benutzerdefinierte Seite für Posts verwenden, wo fügen Sie diesen Code hinzu?

3
onetrickpony

Ich ersetzte:

$page_id = [id of post];

mit:

$page_id = $wp_query->get_queried_object_id();

Arbeitete für mich!

1
psycho_nude

Es gibt zwei Methoden, je nachdem, ob Sie dies innerhalb oder außerhalb der Schleife tun.

Innerhalb: $ page_id = $ post-> ID; (Was du erwähnt hast, ohne Erfolg, also gehe ich davon aus, dass du nach der Alternative suchst, die ist ...)

Außerhalb: $ page_id = $ wp_query-> post-> ID;

1
Mike Hudson