/ / Anpassen des Posts vor der Post-Paginierung - PHP, WordPress, Paginierung, Hook

Anpassen der Post vor der Post-Paginierung - PHP, WordPress, Paginierung, Hook

Ich möchte ein Skript ausführen, bevor der Beitrag paginiert wird.

Dies gelang mir auch, indem ich das Skript kurz vor dem Paginieren der Daten ausführte

if ( false !== strpos( $content, "<!--nextpage-->" ) )

im wp-includes/query.php

Ich muss die Postseiten ändern, die unter bestimmten Bedingungen paginiert sind.

Sagen wir

if(condition == true){
$paged_data = explode("<!--nextpage-->", $content);
$i = 0;
$allpages = "";
foreach($paged_data as $p_data){
if( ($i) % 3 != 0){
$allpages = $allpages.$p_data;
}
else{
$allpages = $allpages . "<!--nextpage-->" .$p_data;
}
$i++;
}
$content = $allpages;
}

Aber ich brauche dazu einige Haken oder Filter. Damit der Code nicht gelöscht wird, wenn WordPress aktualisiert wird.

Ich habe es versucht the_content Haken, aber es wird ausgeführt, nachdem der Beitrag paginiert wird.

Auch ich habe es versucht the_post Haken, aber es funktioniert nur mit wenigen Themen.

Antworten:

0 für die Antwort № 1

Hier ist ein Beispiel, wie wir können verschmelzen Seiten in Blöcken, wenn verwendet Inhaltspaginierung:

Detail

Demo Plugin:

Wir können das benutzen content_pagination So ändern Sie die Inhaltspaginierung:

/**
* Content Pagination - Merge pages in chunks
*/
add_filter( "content_pagination", function( $pages )
{
// Nothing to do without content pagination
if( count( $pages ) <= 1 )
return $pages;

// Number of pages per chunk
$pages_per_chunk = 3; // <-- Edit to your needs!

// Create chunks of pages
$chunks = array_chunk( $pages, $pages_per_chunk );

// Merge pages in each chunk
$merged = [];
foreach( (array) $chunks as $chunk )
$merged[] = join( "", $chunk );

return $merged;

} );

wo wir das einstellen $pages_per_chunk wie benötigt.