繁体   English   中英

在帖子分页之前自定义帖子

[英]Customizing the post before post pagination

我想在分页之前执行脚本。

我也成功地通过在分页数据之前执行脚本来实现这一点

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钩子,但它只适用于少数主题。

以下是使用内容分页时如何以块的形式合并页面的示例:

详情

演示插件:

我们可以使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM