I’m trying to generate a hyperlink on my homepage for the most recent post using wp_get_recent_posts() and is_category(). The site is not setup like a blog—posts are being loaded into custom page templates using categories with dynamic #id based on slug. So, I’m trying to get the category of the most recent post and then generate the link for it with the proper URL.
I tested the structure of the link generation outside of the if else and it almost works (it grabbed the correct slug, but with the audio category instead of zazzle), but it’s not working in the if else statements.
I’m not a programmer so it may be a stupid mistake. One thing I did notice is that if I print the array $recent, there seems to be no category name or category number in it, even if I specify the categories in the $args array like ‘category’ => ‘2,3,4,5’ .
The homepage template is hard-coded as it’s not loading any posts into it, so maybe I need to use this stuff in a loop to make it work right??
<?php
$args = array( 'numberposts' => '1', 'offset' => '0', 'orderby' => 'post_date', 'order' => 'DESC', 'post_status' => 'publish' );
$recent_posts = wp_get_recent_posts( $args );
$home = home_url( '/' );
$homeURL = esc_url( $home );
$before = '<a href="';
$after = '">dive in</a>';
foreach( $recent_posts as $recent ){
$slug = basename( get_permalink($recent["ID"]) );
// if post is audio
if ( is_category('audioz') ) {
echo $before . $homeURL . "audio/" . "#" . $slug . $after;
}
// else if post is video
else if ( is_category('videoz') ) {
echo $before . $homeURL . "videos/" . "#" . $slug . $after;
}
// else if post is article
else if ( is_category('articlez') ) {
echo $before . $homeURL . "article/" . "#" . $slug . $after;
}
// else if post is zazzle link
else if ( is_category('zazzle') ) {
echo $before . $homeURL . "store/" . "#" . $slug . $after;
}
}
?>
I also tried using the category number in is_category() but that didn’t work, and I also tried using in_category().
Advice welcome. I’ve been at this for hours and can’t find anything about this on the forums or through web searches. I can’t link to the page as I only have the ability to work locally at the moment in MAMP.
]]>I need some help.
Im writing simple plugin displaying last uploaded photo. I try use this:
$args = array(
'numberposts' => 1,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'attachment',
);
$post = wp_get_recent_posts($args);
and $post == null.
I have no idea why except wordpress does not like me.
If I remove the tag_id argument then the posts I want to append are included in the results. It seems that WP also filters the appended posts with the other arguments, is there any workaround?
$include = array(1, 2);
$args = array(
‘showposts’ => 10,
‘tag_id’ => ‘123’,
‘post_status’ => ‘publish’,
‘exclude’ => $current_id,
‘orderby’ => ‘post_date’,
‘append’ => $include,
);$entries = wp_get_recent_posts($args, ‘ARRAY_A’);
Any help would be greatly appreciated – I’ve asked about this elsewhere but no one’s been able to figure it out. Thank you!
]]>I’m having this problem with the function wp_get_recent_posts, this function works fine on my local testing server however when I move it to my actual website this function appears to prevent the page from loading. I get no errors from the console, just any content after this method is called is not loaded.
I am looking for a way to get the most recent post as an array so that I don’t have to edit masses of code. So I can access post elements like this: $post[‘post_title’], $post[‘post_author’] etc.
Thanks.
]]>I just want to show the last 5 post (publish post), without taking in count the category. So when the visitor goes to a category at the sidebar could see the last X (could be 5 or 10) last post published.
To make that i’m using the function wp_get_recent_posts but there is a problem apparently because doesnt work. It crash when try to load the file sidebar.php with that function. And i know that the problem is wp_get_recent_posts because if i use a loop with query_post works fine (but i dont want to use this function!).
I paste here the code, its almost the same that it s in the Codex page.
<ul id="LastPostList">
<?php
$args = array(
'numberposts' => 5,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true );
$recent_posts = wp_get_recent_posts( $args, $output = ARRAY_A );
foreach ($recent_posts as $recent)
{
?>
<li class="LastPost"><a href="<?php get_permalink({$recent['ID']}) ?>" title="<?php esc_attr({$recent['post_title']})?>" ><?=$recent["post_title"]?></a></li>
<?php
}
?>
</ul>
Maybe there is something that i cant see… i also try to enable the debug option but didnt shows anything, and the server error file nether.
]]>I’m using wp_get_recent_posts to get latest posts, but now I need to filter them out from specific categories
Right now I have
$args = array( 'numberposts' => 15 );
$recent_posts = wp_get_recent_posts( $args );
I tried
$args = array( 'numberposts' => '15' , 'category' => '134' );
$recent_posts = wp_get_recent_posts( $args );
Where 134 is the ID of the category I want to get posts, but nothing shows up…
I have 2 main categories and on each one several child categories.
I need to get the latest posts from all the child categories from one of the main categories, how can I accomplish that?
cheers
]]>To do this, I use wp_get_recent_posts. Following is the code that displays the 2 most recent posts from the category ‘news’. This works polylang. So, when the lang is EN, it will display the 2 most recent EN posts in the EN category ‘news’. When the lang is FR, it will display the 2 most recent FR posts in the FR category ‘news’.
<?php
global $post;
$recent_news_posts = wp_get_recent_posts( array( 'numberposts' => 2, 'category' => 24 /* EN news category */ ) );
foreach( $recent_news_posts as $recent ){
$post = (object) $recent;
echo '<a href="' . get_permalink($recent["ID"]) . '">' . $recent["post_title"] . '</a>';
}
wp_reset_postdata();
?>
For the second list (all post except category ‘news’) I use the same code but instead of ‘category’ => 24, I put ‘category__not_in’ => 24.
This doesn’t work at all. It display the most recent posts in any category AND in any language. It seems to query from a pool of all the posts in all the languages.
So, not only does the exclude category not work, it also ‘breaks’ polylang. Any ideas how to solve this?
https://www.ads-software.com/extend/plugins/polylang/
]]>$lastPosts = wp_get_recent_posts( Array('numberposts'=>$num,'orderby' => 'post_date'), $output );
and $lastPost[0]->post_content
then i look an my source html and see <blockquote>...
then i look at my blog page (it use the_content) source (the same post) and see <blockquote><p>...
Btw. I turn off all plugins before test it.
My question is: where is my P tag in $lastPost[0]->post_content ???
]]>This seems not to be a bug but it could be a misuse by myself previously : there has been a little changes in polylang behavior. If you use for example :
wp_get_recent_posts( array(
'numberposts' => $instance['numberposts'],
'post_status' => 'publish'
) );
which was correctly returning post for the current language displayed with version < 0.9. Now with polylang 0.9 you need to explicitly says you want a specific language like that :
$recentposts = wp_get_recent_posts( array(
'numberposts' => $instance['numberposts'],
'lang' => pll_current_language(),
'post_status' => 'publish'
) );
If you have the problem, I hope it would help you…
Regards,
Fran?ois.
https://www.ads-software.com/extend/plugins/polylang/
]]>wp_get_recent_posts
and get_posts
functions allow for filtering output by category, but there’s no mention of being able to filter it by author(s).
It does say on the wp_get_recent_posts
function that it “uses WP_Query Parameters”, which would mean it supports the "author="
parameter, but I’m not sure how to supply those to the function.
I Googled a bit too, but no one seems to have asked this particular question. I’ve probably missed it…
Thank you.
]]>