这很难通过编程实现,因为html中存在潜在的变化以及标记如何平衡。然而,如果你要尝试,我建议你这样做。
首先,WordPress在setup_postdata()
, 在the_post()
. 这意味着你需要得到这些<!--nextpage-->
结束前的立柱中的线条the_post()
. 这个\'loop_start\'
行动应该为这些目的而起作用。它甚至通过引用传递当前WP\\u查询对象的副本,因此您可以直接对查询的帖子进行更改!
这是一个开始:
add_action( \'loop_start\', \'wpse14677_loop_start\' );
function wpse14677_loop_start( $query ) {
foreach( $query->posts as $index => $post ) {
$words = preg_split( \'/ +/\', $post->post_content, PREG_SPLIT_NO_EMPTY );
$pages = array();
while ( $words ) {
$word_count = count ( $words );
if ( 200 >= $word_count ) {
$pages[] = implode( \' \', $words );
$words = array();
} else {
$pages[] = implode( \' \', array_slice( $words, 0, 200 ) );
$words = array_slice( $words, 200 );
}
}
$page_count = count( $pages );
if( 1 < $page_count ) {
$query->posts[ $index ]->post_content = implode( "\\n<!--nextpage-->\\n", $pages );
}
}
}
希望这能让你知道你需要做什么。我建议找到一些临时剥离html标记的方法,并在插入
nextpage
标志,因为上面的函数还将计算HTML标记中的空格,甚至可以在其中放置分页符。