Displaying a specific post category in Wordpress - wordpress

I am trying to display posts from a specific category on my website which currently displays all posts. Here is the code I have on the section of the page below:
<?php
// the query
$wpb_all_query = new WP_Query(array('post_type'=>'post', 'post_status'=>'publish', 'posts_per_page'=>18)); ?>
<?php if ( $wpb_all_query->have_posts() ) : ?>
<!-- the loop -->
<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
<li><?php the_title(); ?></li>
<?php endwhile; ?>
<!-- end of the loop -->
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

Change your code inside the loop to something like below code and here cat = 3 determines the category 3.
<ul>
<?php
$catquery = new WP_Query( 'cat=3&posts_per_page=10' );
while($catquery->have_posts()) : $catquery->the_post();
?>
<li>
<h3>
<a href="<?php the_permalink() ?>" rel="bookmark">
<?php the_title(); ?>
</a>
</h3>
<?php the_content(); ?>
</li>
<?php endwhile; ?>
</ul>

pass the argument cat = 3 or category id for which you want to show post

Related

Pulling the category ID of the post on the page I am on Wordpress and listing the articles belonging to that category

In a post (single.php) I want to list other posts in the category that post is included in.
<?php
$category = get_category( get_query_var( 'cat' ) );
$cat_id = $category->cat_ID;
?>
<ul>
<?php query_posts( 'showposts=5&orderby=date&cat=$cat_id' ); ?>
<?php while (have_posts()) : the_post(); ?>
<li><?php the_title(); ?></li>
<?php endwhile; ?>
</ul>
Articles in all categories come with this code. However, I only want the articles in the category to which that post belongs to be listed.
I found the solution.
<ul>
<?php
foreach((get_the_category()) as $category) :
$cat= $category->cat_ID
?>
<?php $args = 'cat=' . $cat . '&orderby=date&order=ASC'; ?>
<?php query_posts( $args );?>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php
the_title(); ?></a></li>
<?php endwhile; endforeach; ?>
</ul>
Everything about query_post () is here : https://developer.wordpress.org/reference/functions/query_posts/

How to display associated WordPress category's posts on Magento product page (Fishpig integration)?

I'm having trouble filtering out just the associated category posts associated with a product in the posts.phtml block (using Fishpig). I tried to use the following solution to get the posts:
Fishpig Wordpress Magento Post issue
like so:
$categoryId = Mage::registry('wordpress_category')->getId();
$recentPostCollection = Mage::getModel('wordpress/post')->getCollection()
->addIsPublishedFilter()
->addCategoryIdFilter($categoryId)
->setOrder('post_date', 'desc')
->setPageSize($numPostsToShow)
;
Then modifying the original Related Posts block:
<?php //$posts = $this->getPosts() ?>
<?php $posts = $recentPostCollection; ?>
<?php if (count($posts) > 0): ?>
<div class="block block-blog block-recent-posts">
<?php if ($title = $this->getTitle()): ?>
<div class="block-title">
<strong><span><?php echo $this->__($title) ?></span></strong>
</div>
<?php endif; ?>
<div class="block-content">
<ul id="<?php echo $this->getListId() ?>">
<?php foreach($posts as $post): ?>
<li class="item">
<?php $image = $post->getFeaturedImage(); ?>
<img src="<?php echo $this->htmlEscape( $image->getAvailableImage() ) ?>" ?>
</li>
<?php endforeach; ?>
</ul>
<script type="text/javascript">decorateList('<?php echo $this->getListId() ?>')</script>
</div>
</div>
<?php endif; ?>
And, well, that's not working. When I put a static number into $categoryID, I can at least get data into the $recentPostCollection, but the loops does not work with that data structure... Any help would be amazing! Thanks.
magento fishpig related posts display by category:->
<?php $categories = $post->getTermCollection('category') ?>
<?php if (count($categories) > 0): ?>
<?php foreach($categories as $category): ?>
<?php $getCategory = $this->escapeHtml($category->getId()); ?>
<div id="inhouse-tab"><?php echo Mage::getSingleton('core/layout')->createBlock('wordpress/sidebar_widget_posts')->setTemplate('wordpress/sidebar/widget/categoryposts.phtml')->setCategoryId($getCategory)->setPostCount(4)->toHtml(); ?></div>
<?php break; ?>
<?php endforeach; ?>
<?php endif; ?>

WordPress Global Post Query and Custom Meta not workinging

I have a global post query running, but for some reason my custom meta is not being output. When I try to call it inside a typical WordPress loop it works, but not in my code below. Is there any reason why this would be the case? Been trying to figure it out for an hour now....
<?php global $post; $cntr = 0; $myposts = get_posts('&post_type=go-deeper&posts_per_page=12');
foreach($myposts as $post) : setup_postdata($post);?>
<li class="<?php echo "slide_" . $cntr; ?>"><?php the_post_thumbnail('full'); ?></li>
<?php $cntr++; ?>
<?php endforeach; ?>
I just re-wrote the query and it works now:
<?php if(have_posts()): $cntr = 0;?>
<?php query_posts('&post_type=go-deeper&posts_per_page=12');?>
<?php while(have_posts()):the_post();?>
<?php $deeper_link = get_post_meta( get_the_ID(), 'll_deeper_link', true ); ?>
<li class="<?php echo "slide_" . $cntr; ?>">
<?php the_post_thumbnail('full'); ?>
</li>
<?php $cntr++; ?>
<?php endwhile;?>
<?php wp_reset_query(); ?>
<?php endif;?>

Create Multiple Loop Page

hi i want to create a multiple loop page for archive / category / tag
i am very confused, plz help
<?php
$count = 1;
if (have_posts()) : while (have_posts()) : the_post();
if($count == 1) : ?>
<-- First loop --> I need only 1 post in this loop (so i add above code)
<?php else : ?>
<?php the_post_thumbnail(); ?>
<?php the_title(); ?>
<?php echo limit_words(get_the_excerpt(), '44'); ?>
<-- second loop --> (1 post in this loop)
<?php the_title(); ?>
<?php echo limit_words(get_the_excerpt(), '35'); ?>
<-- Third loop --> (4 post in this loop)
<ul><li><?php the_title(); ?>
</li></ul>
<-- Fourth loop --> (Rest of all posts will be in this loop)
<?php the_post_thumbnail('thumbnail', array('class' => 'cover')); ?>
<div class=""></div><?php the_title(); ?>
<?php echo limit_words(get_the_excerpt(), '44'); ?></div>
<?php endif; ?>
<?php $count++; ?>
<?php endwhile; ?>
</div><!-- /.post -->
<?php else : ?>
<h2 class="archiveTitle"><?php _e('Sorry, nothing matched your criteria','linepress');?></h2>
<?php endif; ?>
Check out http://codex.wordpress.org/The_Loop that has a section on using multiple loops. that has always worked for me.

How to loop through a specific category on single.php in Wordpress?

I've created a custom page and it is set as my homepage, within this custom page I am pulling out the latest post from a specific category, I've also created a form of pagination which when clicked upon will take the user to single.php. My intention for the single.php is to have two custom loops.
Custom loop one
I want single.php to distinguish that it has came from the homepage and loop through all of the posts tagged with the same category as the one on the homepage.
Some of these posts will have to be tagged with more than one category, so the loop will have to know to ignore the other categories and just pay attention to the category in question. Does that make sense?
Custom loop two
If the user hasn't arrived from the homepage, single.php will just act as it normally does i.e, if the user comes from index.php (the blog) they will be taken to this second loop (blog post)
However I don't seem to be able to make the distinction between the two loops, I might be over complicating matters, as I've got a loop which wraps everything together and then I have a loop for my custom pagination.
Here is the code below to show you what I'm talking about
custompage.php (set to home) - This works just fine but I'll post it just incase anyone is able to tidy it up
<?php query_posts('cat=1'); ?>
<?php
$myPosts = new WP_Query();
$myPosts->query('showposts=1');
if (have_posts()) :
while ($myPosts->have_posts()) : $myPosts->the_post();
?>
<script type="text/javascript">$.backstretch("<?php $key="image"; echo get_post_meta($post->ID, $key, true);?>");</script>
<div id="post-<?php the_ID(); ?>" class="info">
<h2><?php the_title(); ?></h2>
<ul class="nav">
<?php query_posts('posts_per_page=1&offset=1'); the_post(); ?>
<li class="prev">Previous</li>
<?php wp_reset_query(); ?>
<li class="next"></li>
</ul>
</div>
<!-- end .info -->
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
single.php - Currently broken
<?php if( in_category('1') ) { ?>
<!-- start -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" class="info">
<script type="text/javascript">$.backstretch("<?php $key="image"; echo get_post_meta($post->ID, $key, true);?>");</script>
<h2><?php the_title(); ?></h2>
<ul class="nav">
<li class="prev"><?php previous_post_link('%link', ' ', 'true', '1') ?></li>
<li class="next"><?php next_post_link('%link', ' ', 'true', '1'); ?></li>
<!--li class="prev"><?php //previous_post_link('%link', '%title;', 'true', '1') ?></li>
<li class="next"><?php //next_post_link('%link', '%title;', 'true', '1'); ?></li-->
</ul>
</div>
<!-- end .info -->
<?php endwhile; else: ?>
<?php endif; ?>
<!-- end -->
<?php }else{ ?>
<div id="content" class="widecolumn" role="main">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h2><?php the_title(); ?></h2>
<div class="entry">
<?php the_content('<p class="serif">Read the rest of this entry ยป</p>'); ?>
</div>
</div>
<?php comments_template(); ?>
<?php endwhile; else: ?>
<p>Sorry, no posts matched your criteria.</p>
<?php endif; ?>
</div>
<?php } ?>
The problem I seem to be running into is when a post has been tagged with two categories, wordpress doesn't seem to be able to make the distinction between the two categories and instead of carrying on to the next category it breaks and defaults to the second loop.
how about this?
HOMEPAGE
<?php
$myPosts = new WP_Query();
$myPosts->query('showposts=1&cat=1');
if (have_posts()) :
while ($myPosts->have_posts()) : $myPosts->the_post();
?>
<script type="text/javascript">$.backstretch("<?php $key="image"; echo get_post_meta($post->ID, $key, true);?>");</script>
<div id="post-<?php the_ID(); ?>" class="info">
<h2><?php the_title(); ?></h2>
<ul class="nav">
<?php query_posts('posts_per_page=1&offset=1'); the_post(); ?>
<li class="prev">Previous</li>
<?php wp_reset_query(); ?> <-- not sure if this will reset the overall query
<li class="next"></li>
</ul>
</div>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
the queryposts('cat=1') at the top of your query wont run with that category, the category would have to be set inside your custom query
$myPosts->query('showposts=1&cat=1');
the 2nd page (SINGLE.PHP) with 2 loops..
if the user is coming from the homepage to a single page you want to attach the current category to the query, without this wordpress (while on the singles page will default to loop through all posts)
so for the singles page would the below be any good?
<?php if( in_category('1') ) { ?>
<!-- your selected category -->
<!-- start -->
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID(); ?>" class="info">
<script type="text/javascript">$.backstretch("<?php $key="image"; echo get_post_meta($post->ID, $key, true);?>");</script>
<h2><?php the_title(); ?></h2>
<ul>
<php global $post;
$my_query = get_posts('numberposts=1&cat=1&offset=-1');
foreach($my_query as $post) :
setup_postdata($post);
$link = get_post_meta($post->ID, 'site-url', true); ?>
<li>
<php the_title(); ?>
</li>
<php endforeach; ?>
<php global $post;
$my_other_query = get_posts('numberposts=1&cat=1&offset=1');
foreach($my_other_query as $post) :
setup_postdata($post);
$link = get_post_meta($post->ID, 'site-url', true); ?>
<li>
<php the_title(); ?>
</li>
<php endforeach; ?>
</ul>
</div>
<!-- end .info -->
<?php endwhile; else: ?>
<?php endif; ?>
<!-- end -->
<?php }else{
include('standard-wp-singles-page-stuff.php');
} ?>
then once your singles page loads it will check for the current category in that post, if its in category 1, then it will load your custom loop, then it will loop through 2 posts, in the same category? giving you 2 links to other posts. also using an offset on that query should give you a link forward and a link backwards?
hope that helps..
fixing code layout.. didnt work too well :P

Resources