从引用的帖子中获取内容

时间:2018-06-07 作者:user2265915

我有以下内容,它成功地从引用的帖子中提取标题、缩略图和自定义字段数据(YouTube链接),但显示的内容是父级内容:

function woo_videos_tab_content() {
$posts = get_field(\'videos\');
if( $posts ): ?>
    <div class="row">
    <?php foreach( $posts as $p ): ?>
    <div class="col-sm-4">
        <?php
        if ( has_post_thumbnail()) : ?>
        <a data-remodal-target="modal-<?php echo $p->ID; ?>" class="video-link" title="<?php echo get_the_title( $p->ID ); ?>" >
            <?php echo get_the_post_thumbnail( $p->ID, \'video-thumb\' ); ?>
            <i class="fa fa-youtube-play fa-4x"></i>
        </a>
        <h4><?php echo get_the_title( $p->ID ); ?></h4>

        // Issue with the line below
        <?php echo get_the_content( $p->ID ); ?>

        <div class="remodal" data-remodal-id="modal-<?php echo $p->ID; ?>">
            <button data-remodal-action="close" class="remodal-close"></button>
            <h2><?php echo get_the_title( $p->ID ); ?></h2>
            <iframe src="<?php the_field(\'youtube_link\', $p->ID); ?>?enablejsapi=1&version=3" allowfullscreen="" width="560" height="315" frameborder="0" allowscriptaccess="always"></iframe>
        </div>
        <?php endif; ?>
    </div>
  <?php endforeach; ?>
</div>
<?php endif;
}
我应该通过另一种方法提取内容吗?我曾设想,标题/缩略图/自定义字段的工作方式将适用于内容。

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

作用get_the_content 不需要post_ID 作为参数。它有2个参数:

  • $more_link_text - (字符串)(可选)当有更多文本时的内容
  • $stripteaser - (布尔)(可选)在更多文本之前显示摘要内容
所以不能在代码中使用它get_the_content( $p->ID ); - 这将获取当前帖子的内容并使用$p->ID 作为更多链接文本。

那么,如何根据帖子ID获取任何帖子的内容呢?

您可以使用get_post_field 功能:

echo apply_filters( \'the_content\', get_post_field( \'post_content\', $p->ID ) );

SO网友:idpokute

您使用的方法参数不正确。

首先,get\\u the\\u content函数不将post的id作为参数。here is the ref

其次,在循环中,您使用的是没有参数的has\\u post\\u缩略图。在这种情况下,必须使用\\u post()方法,因为它实际上更改了循环中的全局post变量。

结束

相关推荐

如何重写WooCommerce特定的循环或归档产品.php

到目前为止,当我的woocommerce主题循环浏览商店页面中的所有产品时,我正在尝试自定义并添加一些引导类,以更为可靠的方式对其进行样式设置,因为生成的默认样式会导致布局问题。在调查该页面后,我发现这是循环的核心:wc_get_template_part( \'content\', \'product\' ); 不知道它看起来像什么,我可以编辑它,但我仍然认为它可能隐藏在某个地方,但不知道在哪里可以找到它。从昨天开始,我就一直在思考如何编辑html元素。我还是主题开发的初学者,所以请帮助我,或