/ / Персонализиране на публикацията преди публикуването на страницата - php, wordpress, пагинация, кука

Персонализиране на публикацията преди публикацията - php, wordpress, pagination, hook

Искам да изпълня скрипт точно преди да бъде разбито на страницата.

Също така успях да постигна това чрез изпълнение на скрипта точно преди данните да бъдат препратени

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

в wp-includes/query.php

Трябва да променям страниците на публикациите, които се подреждат според някои условия.

Да речем

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

Но аз трябва да се постигне с помощта на някои куки или филтър. Така че кодът няма да бъде изтрит, когато WordPress се актуализира.

Опитах the_content кука, но тя се изпълнява след като пейджира пощата.

Дори аз се опитах the_post кука, но тя работи само с няколко теми.

Отговори:

0 за отговор № 1

Ето пример как можем сливам страници в парчета, когато използвате странициране на съдържанието:

детайл

Демонстрационен плъгин:

Можем да използваме content_pagination за промяна на обозначаването на съдържанието:

/**
* 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;

} );

където коригираме $pages_per_chunk колкото е необходимо.