Eine Möglichkeit festzustellen, auf welcher Seite sich ein Beitrag befindet

Ich frage mich, ob es eine gute Möglichkeit gibt zu sagen, aus welcher Archivseite ein Beitrag stammt. Ich brauche im Grunde nur die Position des Beitrags in der Gesamtbestellung, dann teile es durch die Option “posts_per_page”. Der Hangup, den ich habe, bekommt diese Position oder den Offset, wo der Post sitzt.

EDIT: Alle während der Single-POST-Vorlage.

Dort, egal was, die üblichen $ wp_query globalen und ‘Seite’ / ‘paged’ Abfrage vars sind immer 0 – also werden diese mich nirgendwohin bringen.

Solutions Collecting From Web of "Eine Möglichkeit festzustellen, auf welcher Seite sich ein Beitrag befindet"

Wenn Sie auf Seite 2+ sind, haben Sie Zugriff auf die global $page , die Ihnen die Seitennummer mitteilen soll, auf der Sie sich gerade befinden. Es gibt auch einige andere, die einen Blick wert sind (nie wissen, wo der eine vorhanden / aktiv ist): global $multipage, $numpages; .

Sie können die aktuelle Seite auch über get_query_var(); Hauptfunktion. Grundsätzlich kommt die global $page von dort.

 // Using get_query_var() $paged = get_query_var('page') ? get_query_var('page') : false; // Or via the global wp_query object $paged = $GLOBALS['wp_query']->query_vars['page'] ? $GLOBALS['wp_query']->query_vars['page'] : false; if ( $paged ) // do stuff - @example echo "Current page is {$paged}"; 

In Ordnung, vergiss es. Ich habe dies getriggers, indem ich dies am Anfang der einzelnen Postvorlage getan habe:

 $position_query = array( 'post_type' => 'portfolio', 'orderby' => 'menu_order', 'order' => 'ASC', 'numberposts' => -1 ); $position_posts = get_posts($position_query); $count = 0; foreach ($position_posts as $position_post) { $count++; if ($position_post->ID == $current_id) { $position = $count; break; } } $posts_per_page = get_option('posts_per_page'); $result = $position/$posts_per_page; $current_page = ceil($result); 

Ich brauchte so etwas nur für Singles und vereinfachte die angenommene Antwort leicht:

  $position_query = array( 'post_type' => 'post','order'=>'DESC', 'numberposts' => -1 ); $position_posts = get_posts($position_query); $count = 0; foreach ($position_posts as $position_post) { $count++; if ($position_post->ID == $post->ID) { $current_page = $count; break; } } $total_posts = count($position_posts); 

Dies kann in diesem Zusammenhang verwendet werden: “Seite 1 von 10” 1 ist $ current_page und 10 ist $ total_posts

Wir haben 2 bedingte Tags, um dies zu vereinfachen

  < ?php if(is_single()) { echo "post"; } elseif(is_page()) { echo "page"; } ?> 

Fügen Sie dies in die Datei ein, die sowohl in der Seite als auch in der Post enthalten ist und von “Post” & “Page” zu dem, was Sie benötigen, geändert wurde.