相关帖子:更改每页帖子的功能

时间:2015-08-07 作者:vega

我在dailysuit工作。de,它在每个帖子的内容下面有8篇相关文章,由一些标签定义。

现在我想把“每页帖子”的数量从8篇减少到4篇。当然,我可以通过更改函数轻松实现这一点。php,但一旦主题得到更新,数字就会回到8。

因此,我想更改函数并将其添加到子主题的函数中。php:

/* Related posts */
function longform_the_related_posts_change() {
global $post;
$tags = wp_get_post_tags($post->ID);

if ($tags) {
    $tag_ids = array();

    foreach($tags as $individual_tag) {
        $tag_ids[] = $individual_tag->term_id;
    }

    $args = array(
        \'tag__in\'             => $tag_ids,
        \'post__not_in\'        => array($post->ID),
        \'posts_per_page\'      => 4, // Number of related posts to display.
        \'ignore_sticky_posts\' => 1
    );

    $my_query = new wp_query( $args ); ?>

    <h2 class="related-articles-title"><?php _e( \'Related articles\', \'longform\' ); ?></h2>
    <div class="related-articles">
        <?php
        while( $my_query->have_posts() ) {
            $my_query->the_post(); ?>

            <div class="related-thumb col-sm-3 col-md-3 col-lg-3">
                <a rel="external" href="<?php the_permalink(); ?>">
                    <?php the_post_thumbnail(array(500,350)); ?>
                    <div class="related-content">
                        <h2><?php the_title(); ?></h2>
                    </div>
                </a>
            </div>
        <?php } ?>
        <div class="clearfix"></div>
    </div>
<?php
}
wp_reset_postdata();
wp_reset_query();
}
add_filter( \'longform_the_related_posts\', \'longform_the_related_posts_change\' );
不幸的是,这没有奏效。它仍然显示了8篇相关帖子,而不是我在“posts\\u per\\u page”中输入的4篇。

有人知道那里出了什么问题吗?或者有没有一种更简单/更简短的方法不需要复制所有这些代码?

我还尝试了提到的remove\\u filter,但也没有成功。

longform_the_related_posts_child () {
remove_filter(\'longform_the_related_posts\');
add_filter(\'longform_the_related_posts\', array(
    \'longform_the_related_posts_filter\' => \'longform_the_related_posts\',
    \'posts_per_page\' => 4,
) );
}

2 个回复
最合适的回答,由SO网友:Pooja Mistry 整理而成

我检查了你的代码,发现函数longform_the_related_posts 显示8个相关帖子。此函数在函数中定义。父主题的php,并在单个中调用。php。

因此,要覆盖该功能,请执行以下步骤-1。创建另一个在函数中显示4个相关帖子的函数。子主题的php。(因为您已经创建了函数longform_the_related_posts_change() )
2。复制文件single.php 从父主题到子主题并替换第47行

从…起

echo longform_the_related_posts();

echo longform_the_related_posts_change();
这将调用显示4个帖子的函数<希望这有帮助。

SO网友:Pooja Mistry

上面的代码看起来不错。我认为,您之所以得到8篇而不是4篇文章,是因为您仍然有一个代码可以在父主题的函数中获取8篇文章。php。

尝试删除子主题中父主题的筛选器。像这样-

remove_filter(\'<filter_name>\',\'<function_name>\');
这样一来,父主题的功能就不会生效,子主题的代码也会起作用。

有关remove\\u filter的详细信息-https://codex.wordpress.org/Function_Reference/remove_filter

希望这有帮助。

结束

相关推荐

Related posts with WP_Query

我一直在查询相关帖子。我需要相关的职位,以显示任何深度从主家长。我的网站上有以下结构类别:- Category level 1 -- Category level 2 --- Category level 3 *---- Post in level 3* --- Category level 3 *--- Post in level 3* -- Category level 2 -- Category level 2 当我们看到*----