【问题标题】:Customizing the post before post pagination在帖子分页之前自定义帖子
【发布时间】:2016-08-03 03:04:04
【问题描述】:

我想在帖子被分页之前执行一个脚本。

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

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 过滤器?
  • 我想将一些页面动态合并为1。假设我有 18 页。我想将它们转换为 6。

标签: php wordpress pagination hook


【解决方案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。

【讨论】:

  • 谢谢??,好sn-p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-13
  • 2014-12-11
  • 2014-05-15
  • 2011-03-20
  • 2014-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多