<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wordpress recent posts Archives | Kernix Web Design</title>
	<atom:link href="https://kernixwebdesign.com/tag/wordpress-recent-posts/feed/" rel="self" type="application/rss+xml" />
	<link>https://kernixwebdesign.com/tag/wordpress-recent-posts/</link>
	<description>Website Design and Development</description>
	<lastBuildDate>Sat, 28 Jan 2023 20:00:46 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>https://kernixwebdesign.com/wp-content/uploads/2020/12/cropped-fav-icon3-32x32.png</url>
	<title>wordpress recent posts Archives | Kernix Web Design</title>
	<link>https://kernixwebdesign.com/tag/wordpress-recent-posts/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress Recent Posts using a Custom Query</title>
		<link>https://kernixwebdesign.com/website/code/wordpress-recent-posts-using-a-custom-query/</link>
		
		<dc:creator><![CDATA[Jim Kernicky]]></dc:creator>
		<pubDate>Sat, 30 Jan 2021 02:04:39 +0000</pubDate>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[get_posts]]></category>
		<category><![CDATA[wordpress recent posts]]></category>
		<category><![CDATA[wp_query example]]></category>
		<guid isPermaLink="false">https://kernixwebdesign.com/?p=366</guid>

					<description><![CDATA[<p>I prefer to do as much as I can in WordPress without using a plugin. A simple thing is to write a WordPress custom query to display the 3 most recent posts in a category or other criteria. I show the code I used to generate the 3 most recent posts using 2 different custom queries.</p>
<p>The post <a href="https://kernixwebdesign.com/website/code/wordpress-recent-posts-using-a-custom-query/">WordPress Recent Posts using a Custom Query</a> appeared first on <a href="https://kernixwebdesign.com">Kernix Web Design</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>You can use a custom query in WordPress to retrieve any data that is in the database. Using get_posts and WP_Query are 2 easy custom queries you can write to pull data out of the WordPress database. I show the code I used to generate the recent posts on this website &#8211; without a plugin!</p>
<h2>WordPress recent posts using custom queries</h2>
<p>The two methods I found best to display the 3 most recent posts were to use get_posts and WP_Query.</p>
<p>Here is a custom query using WP_Query. You can use this custom query inside or outside of the loop. The first code block calls WP_Query and 3 posts in the code category while excluding sticky posts. It also selects &#8216;posts&#8217; post types as opposed to pages or custom post types, but you could choose those as well.</p>
<p>You can query on any database field that you need. For me, I wanted to display the 3 most recent published posts in my Code Snippets category.</p>
<p>Lines 10-12 uses the new instance of WP_Query ($query) to query the specific posts from the database.</p>
<div class="pre-container">
<pre class="code-block dark_block">
        <code data-line="1">&lt;<span class="green">?php</span></code>
        <code data-line="2"></code>
        <code
          data-line="3"> $query <span class="blue"></span>= <span class="red">new</span> <span class="purple">WP_Query</span>( [</code>
          <code
            data-line="4"> <span class="light-blue">&apos;post__not_in&apos;</span> <span class="blue"></span>=&gt; <span class="purple">get_option</span>( <span class="light-blue">&apos;sticky_posts&apos;</span>),</code>
          <code
            data-line="5"> <span class="light-blue">&apos;post_type&apos;</span> <span class="blue"></span>=&gt; <span class="light-blue">&apos;post&apos;</span>,</code>
          <code
            data-line="6"> <span class="light-blue">&apos;post_status&apos;</span> <span class="blue"></span>=&gt; <span class="light-blue">&apos;publish&apos;</span>,</code>
          <code
            data-line="7"> <span class="light-blue">&apos;category_name&apos;</span> <span class="blue"></span>=&gt; <span class="light-blue">&apos;code&apos;</span>,</code>
          <code
            data-line="8"> <span class="light-blue">&apos;posts_per_page&apos;</span> <span class="blue"></span>=&gt; 3,</code>
        <code data-line="9"> ] );</code>
        <code data-line="10"></code>
        <code data-line="11"> <span class="red">if</span> ($query-&gt;<span class="purple">have_posts</span>())<span class="orange"></span> {</code>
          <code
            data-line="12"> <span class="red">while</span> ($query-&gt;<span class="purple">have_posts</span>())<span class="orange"></span> {</code>
            <code data-line="13"> $query-&gt;<span class="purple">the_post</span>(); <span class="green">?</span>&gt;</code>
      </pre>
</p></div>
<p>The code block below is the HTML for the post details along with some necessary PHP functions. Since WP_Query works both inside and outside of the loop, you&#8217;ll need to decide if it&#8217;s best used in the loop or outside of it.</p>
<p>Don&#8217;t forget to use wp_reset_postdata or it may mess up the page below the query or break the page.</p>
<div class="pre-container">
<pre class="code-block dark_block">
        <code
          data-line="1">&lt;<span class="green">div</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;recent-row&quot;</span>&gt;</code>
          <code data-line="2"> &lt;<span class="green">?php</span> <span class="purple">the_post_thumbnail</span>() ?&gt;</code>
          <code
            data-line="3"> &lt;<span class="green">a</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;recent-posts-link&quot;</span> <span class="blue">href</span><span class="blue"></span>=&quot;&lt;<span class="green">?php</span> <span class="purple">the_permalink</span>(); <span class="green">?</span>&gt;&quot; </code>
          <code
            data-line="4"> <span class="blue">rel</span><span class="blue"></span>=<span class="light-blue">&quot;bookmark&quot;</span>&gt;&lt;<span class="green">h4</span>&gt;&lt;<span class="green">?php</span> <span class="purple">the_title</span>(); ?&gt;&lt;<span class="green"></span>/<span class="green">h4</span>&gt;&lt;<span class="green"></span>/<span class="green">a</span>&gt;</code>
      
          <code
            data-line="6"> &lt;<span class="green">?php</span> <span class="purple">get_template_part</span>( <span class="light-blue">&apos;template-parts/content&apos;</span>, <span class="light-blue">&apos;author&apos;</span> ); <span class="green">?</span>&gt;</code>
      
           <code
             data-line="8">&lt;<span class="green">?php</span> <span class="purple">the_excerpt</span>(); <span class="green">?</span>&gt;</code>
          <code
            data-line="9"> &lt;<span class="green">div</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;recent-post-widget&quot;</span>&gt;&lt;<span class="green"></span>/<span class="green">div</span>&gt;</code>
          <code
            data-line="10"> &lt;<span class="green">a</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;recent-posts-button&quot;</span> <span class="blue">href</span><span class="blue"></span>=&quot;&lt;<span class="green">?php</span> <span class="purple">the_permalink</span>(); ?&gt;&quot;&gt;</code>
          <code data-line="11"> Read more...&lt;<span class="green"></span>/<span class="green">a</span>&gt;</code><code data-line="12"> &lt;<span class="green">?php</span></code>
          <code data-line="13"> }</code>
        <code data-line="14"> }</code>
        <code data-line="15"> <span class="purple">wp_reset_postdata</span>();</code>
        <code data-line="16"> ?&gt;</code>
      </pre>
</p></div>
<p>However, if you are on a page that has the loop, then you might as well take advantage of the post data. The loop is fetching the database fields for $post, so use either WP_Query or a get_posts() query while in the loop.</p>
<p>The get_posts query does not work unless it is inside the loop. Here is the code for get posts that returns the same data as WP_Query.</p>
<div class="pre-container">
<pre class="code-block dark_block">
        <code data-line="1"><span class="red">if</span> ( <span class="purple">have_posts</span>() ) :</code>
        <code data-line="2"> <span class="red">while</span> ( <span class="purple">have_posts</span>() ) :</code>
        <code data-line="3"> <span class="purple">the_post</span>();</code>
          <code
            data-line="4"> <span class="purple">get_template_part</span>( <span class="light-blue">&apos;template-parts/content&apos;</span>, <span class="light-blue">&apos;front-page&apos;</span> ); <span class="green">?</span>&gt;</code>
      
        <code
          data-line="6"> &lt;<span class="green">aside</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;bgcolor4&quot;</span>&gt;&lt;<span class="green"></span>/<span class="green">aside</span>&gt;</code>
          <code
            data-line="7"> &lt;<span class="green">div</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;container&quot;</span>&gt;&lt;<span class="green"></span>/<span class="green">div</span>&gt;</code>
          <code
            data-line="8"> &lt;<span class="green">h3</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;custom-title&quot;</span>&gt;</code>
            <code
              data-line="9"> &lt;<span class="green">?php</span> <span class="purple">esc_html_e</span>(<span class="light-blue">&apos;Latest Articles &apos;</span>, <span class="light-blue">&apos;tower&apos;</span>) <span class="green">?</span>&gt;</code>
          <code data-line="10"> &lt;<span class="green"></span>/<span class="green">h3</span>&gt;</code>
          <code
            data-line="11"> &lt;<span class="green">div</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;row&quot;</span>&gt;&lt;<span class="green"></span>/<span class="green">div</span>&gt;</code>
          <code data-line="12"> &lt;<span class="green">?php</span></code>
            <code data-line="13"> $posts <span class="blue"></span>= <span class="purple">get_posts</span>([</code>
              <code
                data-line="14"> <span class="light-blue">&apos;post_type&apos;</span> <span class="blue"></span>=&gt; <span class="light-blue">&apos;post&apos;</span>,</code>
              <code
                data-line="15"> <span class="light-blue">&apos;category_name&apos;</span> <span class="blue"></span>=&gt; <span class="light-blue">&apos;code&apos;</span>,</code>
              <code
                data-line="16"> <span class="light-blue">&apos;posts_per_page&apos;</span> <span class="blue"></span>=&gt; 3,</code>
            <code data-line="17"> ]);</code>
        <code data-line="18"></code>
        <code data-line="19"> <span class="red">foreach</span> ($posts as $post)<span class="orange"></span> {</code>
          <code data-line="20"> <span class="purple">setup_postdata</span>($post); <span class="green">?</span>&gt;</code>
        <code data-line="21"></code>
          <code
            data-line="22"> &lt;<span class="green">div</span> <span class="blue">class</span><span class="blue"></span>=<span class="light-blue">&quot;recent-row&quot;</span>&gt;</code>
      </pre>
</p></div>
<p>Lines 6-9 are the HTML elements and classes to be output for the container of the posts, then the custom get_posts query starts on line 10 and continues to line 18. You should notice the div.recent-row which starts the HTML in the code block above for WP_Query.</p>
<h2>Final thoughts</h2>
<p>Using a custom query to pull the most recent posts is best done in a plugin. I put mine directly into my template files since it&#8217;s my theme and my website, though I will be creating a plugin for the recent posts (look for that article).</p>
<p>There are a number of different parameters you can query other than the ones I used (post_type, category_name, posts_per_page). Go to the <a href="https://developer.wordpress.org/reference/classes/wp_query/#parameters">WP_Query developer&#8217;s page</a> to see other parameters you can use.</p>
<p>The post <a href="https://kernixwebdesign.com/website/code/wordpress-recent-posts-using-a-custom-query/">WordPress Recent Posts using a Custom Query</a> appeared first on <a href="https://kernixwebdesign.com">Kernix Web Design</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
