我如何在主页上完整地显示一些帖子,以及一些帖子仅作为摘录?

时间:2016-09-20 作者:THarps22

在起草一篇帖子时,我想勾选一个方框,以确定是否:

a) 主页上只显示文章的摘录,通过单击“阅读更多”将您链接到完整的文章

b) 全文显示在主页上,没有可用的“阅读更多”按钮。。。

你能解释一下怎么做吗?非常感谢。

汤姆

2 个回复
SO网友:Krystian Kupiec

看起来您需要将自定义元框添加到您的贴子页面。

最简单的方法是Advanced Custom Fields, 查看谷歌的一些教程,当然你需要安装额外的插件。(视频教程:https://www.youtube.com/watch?v=xtqMatzVoSA )

如果你想在没有插件的情况下实现这一点,你需要手动添加一个元框。有一个很好的教程解释了如何做到这一点https://www.youtube.com/watch?v=ccbImB59JXQ 你只需要稍微修改一下。

SO网友:Eduardo Sánchez Hidalgo Urías

您需要将自定义字段(单选按钮)添加到帖子编辑器中。要添加自定义字段和元框,我通常使用元框。io插件,您可以下载它并在其官方页面上获取该插件的文档:https://metabox.io/

使用metabox放置单选按钮。io您必须在函数中添加类似的内容。安装并激活插件后的php文件:

<?php //Don\'t use me if on functions.php

add_filter( \'rwmb_meta_boxes\', \'your_prefix_radio_demo\' );
function your_prefix_radio_demo( $meta_boxes )
{
    $meta_boxes[] = array(
        \'title\'  => __( \'Content or Excerpt\', \'your-prefix\' ),
        \'fields\' => array(
            array(
                \'name\'    => __( \'Show Content\', \'your-prefix\' ),
                \'id\'      => \'content_or_excerpt\',
                \'type\'    => \'radio\',
                \'options\' => array(
                    \'content\' => __( \'Show Complete Content\', \'your-prefix\' ),
                ),
            ),
        )
    );
    return $meta_boxes;
}
然后,您可以查询所有帖子并检索单选按钮的值,以显示完整的内容或摘录(此代码适用于任何有主页代码的地方,例如index.php、自定义模板或模板部分):

$args = array(

\'post_type\'   => \'post\',
\'posts_per_page\' => 12,

);

$query = new WP_Query( $args );

if($query->have_post()) {   
    while($query->have_posts()) {
        $query->the_post();
        $show_content = rwmb_meta( \'content_or_excerpt\' ); //Get the value of the post custom field
        $thumbnail_url = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ) );
?>

            <div class="home_featured_post">
                 <?php the_title(\'<h2>\', \'</h2>\'); ?>
                 <img src="<?php echo $thumbnail_url; ?>">                          
<?php
                if( $show_content == "content" ) {
                     the_content();
                } else {
                     the_excerpt();
                }
?>
           </div>
<?php       
    }
}

wp_reset_query();
为了让阅读更多链接链接到帖子,我从Codex中获取了以下代码:https://developer.wordpress.org/reference/functions/the_excerpt/ (此代码位于functions.php文件中)

/**
 * Filter the "read more" excerpt string link to the post.
 *
 * @param string $more "Read more" excerpt string.
 * @return string (Maybe) modified "read more" excerpt string.
 */
function wpdocs_excerpt_more( $more ) {
    return sprintf( \'<a class="read-more" href="%1$s">%2$s</a>\',
        get_permalink( get_the_ID() ),
        __( \'Read More\', \'textdomain\' )
    );
}
add_filter( \'excerpt_more\', \'wpdocs_excerpt_more\' );

相关推荐

GET_POSTS查询大约需要40秒来执行

我在get\\u帖子中有一个元查询,它需要花很长时间才能完成。它工作得很好,但只是时间太长了。我有一个名为event. 在每个event 发布后,有自定义元数据:post\\U sort\\U日期(事件日期YmdHis 格式,用于排序)我需要做的是获取下一个事件,该事件相对于$year 和$month 变量。所以如果$year = 2021 和$month = 10 (2021 10月)然后应该在2021 11月或之后找到第一个事件。我下面的查询很好,但很慢。执行大约需要40秒,我不知道为什么。$next