Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Wordpress上显示x篇最近的文章,包括标题、日期和摘录_Php_Wordpress - Fatal编程技术网

Php 在Wordpress上显示x篇最近的文章,包括标题、日期和摘录

Php 在Wordpress上显示x篇最近的文章,包括标题、日期和摘录,php,wordpress,Php,Wordpress,我正在寻找一种在Wordpress网站主页上显示最后5篇文章的方法,因此我假设我需要使用短代码来完成这项工作,但是我找不到任何预先存在的代码来添加到functions.php中,以显示标题、日期和文章摘要 有人能帮我吗? <?php $args = array('numberposts' => 5); $recent_posts = wp_get_recent_posts($args); foreach( $recent_posts as $recen

我正在寻找一种在Wordpress网站主页上显示最后5篇文章的方法,因此我假设我需要使用短代码来完成这项工作,但是我找不到任何预先存在的代码来添加到functions.php中,以显示标题、日期和文章摘要

有人能帮我吗?


<?php 

    $args = array('numberposts' => 5);

    $recent_posts = wp_get_recent_posts($args);

    foreach( $recent_posts as $recent ){
      echo $recent["post_title"].' '.$recent['post_date'].' '.$recent['post_excerpt'].'<br />';
    }
?>

没有那么糟糕。

有多种方法可以做到这一点,但基本思想类似于您将在主题的INDEX.PHP页面中看到的代码。你做一个查询,循环显示帖子,然后在最后重置查询,这样你所做的不会干扰你的主页

function Last5posts()
{
    $args = array( "showposts" => 5 );                  
    query_posts($args);

    $content = "";

    if( have_posts() ) : 

        while( have_posts() ) :

            the_post();
            $link = get_permalink();
            $title = get_the_title();
            $date = get_the_date();                              

            $content .= "<div style='padding: 5px; border: 1px solid red'>";
            $content .= "<h3><a href='$link' target='_top'>$title / $date</a></h3>\n";
            $content .= "<p class='excerpt'>" . get_the_excerpt() . "</p>";
            $content .= "</div>";

        endwhile;

        wp_reset_query();

    endif;

    // Leave one line commented out depending on usage
    echo $content;   // For use as widget
    //return $content; // for use as shortcode
}
您可能需要添加一些额外的代码,以便像其他侧栏小部件一样将输出放入小部件包装器DIV中。(或者,如果您在传统侧边栏之外的其他地方使用它,则不会使用。)

您还可以使用下面的行将其注册为短代码处理程序。注释掉结尾处的“echo”并取消注释“return”

您需要确保在博客文章中不使用短代码,否则最终可能会递归调用此代码。可能是件坏事


您可能还希望在函数名中添加特定于主题的前缀,以避免名称空间冲突。

这是自定义主题吗?如果是的话,那么你可以控制循环只运行五次……否则,你会被他们设计它的方式所困扰……不,这是我为客户机设计的标准twentyeleven。谢谢你,但是由于我对PHP不太熟悉,我不完全确定如何将它添加到functions.PHP中。我添加了明显的函数,然后上面的代码减去php标记,还添加了_shortcode,但是我意外地得到了add _shortcode行的$end;函数show_the_posts($atts){您在上面发布的代码}然后在下面是add_sortcode etcI无法说出错误行的样子。请在中编辑代码,或者更好地链接到一个文件或小提琴,如果太多。不知道你是否只是忘记了它在txt中,但有php endtag“>”丢失,这与错误消息匹配。如果在更正这个简单错误后知道它是否工作,那将是很好的,但你不可能拥有一切…谢谢Mike,这几乎完美地工作(这正是我想要的)。出于某种原因,帖子显示在页面顶部,而不是应该显示的位置,即页面底部。有什么想法吗?我还将这个短代码放在了一个div中,但是这个div不再出现了。如果你想把小部件放在其他地方,你必须将它放在不同的边栏中,或者编辑你的CSS以改变东西的位置。我使用的是短代码而不是小部件,似乎我必须“返回”而不是使用“回显”,以便在页面上显示我想要的短代码,而不是页面顶部,然而,当我将echo更改为return时,短代码停止工作。Me和PHP不在一起,您知道如何解决最后一个问题吗?使用短代码意味着您希望短代码生成的内容与周围的文本内联。无论您对短代码做什么,都会在逻辑上约束到post所包含的DIV。(除非你做了一些非常非常错误的事情。)我想如果你使用一个自定义页面模板,在你希望这些内容出现的地方添加一个侧边栏,你所做的可能更有意义。请记住,边栏不是必须出现在每个页面上的东西,使用自定义页面模板可以为您提供无限的机会,根据需要自定义布局。哦,对不起,我忘记了作为快捷码所需的“返回”。如果这是您需要的,只需将“echo”更改为“return”。然而,我在前面的评论中提到的其他东西可能仍然适用。
register_sidebar_widget(__('Last 5 Posts'), 'Last5posts');
add_shortcode('Last5Posts', 'Last5posts' );