PHP Code issue - Posts doesn't appear in Wordpress page - php

Can anyone please help me review the following WordPress PHP code. This suppose to show 4 media post in a page and it used to work until recently it stopped working and I can only see Title of the section and Read More link. I hope to find some help resolving the issue. Thanks.
<?php elseif( get_row_layout() == 'media_section' ):?>
<section class="beehive-in-media-section text-center">
<h2>Beehive in the Media </h2>
<div class="container-medium">
<div class="media-blocks-wrapper">
<?php
$paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
// the query
$the_query = new WP_Query( array(
'posts_per_page' => 4,
'post_type' =>'media_posts',
'tax_query' => array(
array(
'taxonomy' => 'lists',
'terms' => 'featured'
)
),
));
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div class="media-box-wrapper">
<div class="media-box-wrapper-inner">
<a href="<?php the_permalink(); ?>">
<span><?php the_post_thumbnail(); ?></span>
<p><?php the_title(); ?>
</p>
</a>
</div>
</div>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
</div> <!-- .media-blocks-wrapper -->
</div> <!-- container-medium -->
Read More
</section>

Related

Wordpress page content and posts in the same page

I'm pretty new in world of wordpress and I'm trying to adjust HTML page into wordpress theme.
I need a page content to be displayed first on a page and under that, the posts should be shown. But what I'm getting are just posts shown twice on the page (where page content should be). Is there any possibility to overcome this?
And additional question, how to filter posts according to their category? I've tried with query_posts('cat=Small'), but it doesn't seem to work properly.
The code for index.php looks as following:
<?php get_header(); ?>
<?php
wp_reset_query();
while ( have_posts() ) : the_post();
the_content();
endwhile;
wp_reset_query();
?>
<section>
<header class="major">
<h2>Erat lacinia</h2>
</header>
<div class="features">
<?php query_posts('cat=Small'); ?>
<?php if(have_posts()) : while(have_posts()) : the_post(); ?>
<article>
<span class="icon fa-diamond"></span>
<div class="content">
<h3><?php the_title(); ?></h3>
<p><?php the_content('Read More'); ?></p>
</div>
</article>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
<?php get_footer(); ?>
Try the below code. This may help you
<section>
<div class="major">
<h2>Erat lacinia</h2>
</div>
<div class="features">
<?php $args = array(
'posts_per_page' => -1,
'offset' => 0,
'category' => '',
'category_name' => '',
'orderby' => 'date',
'order' => 'ASC',
'include' => '',
'exclude' => '',
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_mime_type' => '',
'post_parent' => '',
'author' => '',
'post_status' => 'publish',
'suppress_filters' => true
);?>
<?php query_posts( $args ); ?>
<?php while ( have_posts() ) : the_post(); ?>
<article>
<span class="icon fa-diamond"></span>
<div class="content">
<h3><?php the_title(); ?></h3>
<p><?php the_content('Read More'); ?></p>
</div>
</article>
<?php endwhile; wp_reset_query(); ?>
</div>
</section>
You can use two loops.
In your php page template, first execute the regular loop to get the content of the actual page, like this:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
//output page content here
<?php endif; ?>
Then you define a new query for the desired posts:
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 3,
'orderby' => 'date',
'order' => 'ASC',
)
);
//(Add and change arguments as desired in the array above)
$loop1 = new WP_Query($args);
if ( $loop1->have_posts() ) : while ( $loop1->have_posts() ) : $loop1->the_post();
//Output the post contents in a loop here
<?php endif;
wp_reset_postdata();?>
And then add the rest of the page template (footer etc.)
<?php
/*
*Template name: test
*/
get_header();
if ( have_posts() ) :
while ( have_posts() ) : the_post();
$attrs = array(
'numberposts' => 10,
'post_type' => 'post',
'tax_query' => array(
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'small' )
)
)
);
$my_posts = get_posts( $attrs );
the_content();
?>
<?php if ($my_posts): ?>
<section>
<header class="major">
<h2>Erat lacinia</h2>
</header>
<div class="features">
<?php foreach ($my_posts as $key => $value): ?>
<article>
<span class="icon fa-diamond"></span>
<div class="content">
<h3><?= $value->post_title; ?></h3>
<p><?= $value->post_content ?></p>
</div>
</article>
<?php endforeach ?>
</div>
</section>
<?php endif ?>
<?php
endwhile;
else :
echo wpautop( 'Sorry, no posts were found' );
endif;
get_footer(); ?>

WordPress add a class for newest posts

Does sombody know how i can add a class to the newest posts in WordPress. And what i mean with the newest is the lasts posts that are added in the last minut?
My code now:
<?php
// query
$the_query = new WP_Query(array(
'post_type' => 'post',
'category_name' => 'profiel',
'posts_per_page' => 48,
'paged' => $paged,
'meta_key' => 'online',
'orderby' => 'meta_value_num',
'order' => 'DESC'
));
if ( $the_query->have_posts() ) : ?>
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div id="post-<?php echo $post->ID; ?>" class="profiel">
<h3><?php the_title(); ?></h3>
</div>
<?php endwhile; ?>
<?php else : ?>
<div class="404 not-found">
<h3>Not Found</h3>
<div class="post-excerpt">
<p>Sorry, but there are no more posts here... Please try going back to the main page</p>
</div>
</div>
<?php endif;
wp_reset_query();
the_posts_pagination( array(
'mid_size' => 10
) );
?>
Get the current time, remove 60 seconds compare that to the timestamp of your post. If your post timestamp is greater than the timestamp from a minute ago then it's new.
<?php while( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div id="post-<?php echo $post->ID; ?>" class="profiel <?= (get_the_time('U') > (time()-60)) ? 'new' : '' ?>">
<h3><?php the_title(); ?></h3>
</div>

post by taxonomy not showing at all in wordpress

Newbie here,
I'm trying to display the list of my post depends on the category. But it doesn't display my post. I tried the different type of array, but no luck. I named my page taxonomy-blog_category.php
I call the page via site.com/blog_category/category
here's my current code and I know I'm so close but can't figure it out.
Here is the array:
<div class="row">
<?php $ctr = 1;
$paged = ( get_query_var('paged') ) ? get_query_var('paged') : 1;
$custom_args = array(
'post_type' => 'blog_post',
'orderby' => 'date',
'order' => 'DESC',
'post_status' => 'publish',
'posts_per_page' => 6,
'paged' => $paged,
'tax_query' => array(
array(
'taxonomy' => 'blog-category',
'field' => 'slug',
'terms' => array('business','people','technology'),
),
),
);
Here is how I display the post
$custom_query = new WP_Query( $custom_args ); ?>
<?php if ( $custom_query->have_posts() ) : ?>
<?php while ( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
<div class="col-md-4 text-center">
<div class="content-container">
<div class="wrap">
<figure class="tint t2">
<img src="<?php echo wp_get_attachment_url( get_post_thumbnail_id() ); ?>" width="317px" height="240">
</figure>
</div>
<h2><?php the_title(); ?></h2>
<h3>By <?php the_field('author'); ?> | <span><?php echo get_the_date(); ?></span></h3>
<?php $content = get_field('content'); echo mb_strimwidth($content, 0, 200, '...');?>
<div class="read-more-btn">
read more
</div>
</div>
</div>
<?php $ctr++; endwhile; ?>
I Don't know if this is necessary but here's my code for pagination:
<div class="pagination-holder">
<ul class="pagination">
<?php
if (function_exists(custom_pagination)) {
custom_pagination($custom_query->max_num_pages,"",$paged);
}
?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
</ul>
</div>

2 wp querys clashing with pagination

I have been trying to display a featured post and also the latest posts on the same page but when I go to use pagination, it shows /page/2 in the permalink but it shows the same posts as page 1. I have a feeling the querys are conflicting! How do I fix this please? Code below
<?php query_posts( array(
'post_type' => array('event-', 'videos', 'videos-', 'audio', 'audio-'),
'posts_per_page' => 1,
'meta_key' => '_featured',
'meta_value' => 'yes'
));
?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="potdpostcon">
<div class="featuredimgpotd">
<div class="featuredpostimgzoom"></div><?php the_post_thumbnail( 'featured-post-home' ); ?>
</div>
<div class="featuredbasepotd">
<div class="desclrgexcon"><span class="postexplrg"><?php the_titlesmall('', '...', true, '82') ?></span></div>
<div class="goiconlargecon"><img src="/wp-content/uploads/2014/06/goicon_lrg.png" />
<?php endwhile; endif; ?>
2nd wp query:
<?php
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => array( 'post', 'videos', 'videos-', 'audio-', 'event-'),
'showposts' => 80,
'paged' => $paged
);
$wp_query = new WP_Query( $args );
if ( have_posts() ) : while ( $wp_query->have_posts() ) : $wp_query->the_post();?>
<?php
if( $current_date != get_the_date('d-m-Y') ){
echo '<div class="datetitle100spc"><div class="datetitleconspc"></div></div><div class="datetitle100"><div class="datetitlecon"><span class="dateheadertitle">'.get_the_date('l dS / M Y').'</span></div></div>';
$current_date = get_the_date('d-m-Y');
}
?>
<div class="postmainbase">
<div class="postexcon">
<div class="featuredimgexcon"><div class="postcategoryex"><div class="postcategorytitle"><span class="catexsmall"><?php $category = get_the_category(); echo $category[0]->cat_name; ?></span></div></div><div class="featuredimgzoom"></div><?php the_post_thumbnail( 'home-posts' ); ?></div>
<div class="sepexcon"></div>
<div class="descexcon"><span class="postexp"><?php the_titlesmall('', '...', true, '92') ?></span></div>
<div class="goexcon"><img src="/wp-content/uploads/2014/06/goicon.png" /></div>
</div>
</div>
<?php endwhile; ?>
<div class="paginationdiv">
<?php wp_pagenavi(); ?>
</div>
<?php endif; ?>

Wordpress: archive multiple post types

I'm trying to figure out if it's possible to archive multiple post types on a page, I have an individual archive for each of the post types working fine, but I also want another page that will archive both of them. I'm still quite new to WP so I'm not at all sure if it's possible but what I'm doing so far isn't working correctly:
<?php query_posts('post_type=type01'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<a href="<?php the_permalink(); ?>">
<div class="type01-div" data-value="<?php
$date = DateTime::createFromFormat('dnY', get_field('type01_date_select'));
echo $date->format('dnY');
?>">STUFF HERE</div>
</a>
<?php endwhile; endif; ?>
<?php query_posts('post_type=type02'); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<a href="<?php the_permalink(); ?>">
<div class="type02-div" data-value="<?php
$date = DateTime::createFromFormat('dnY', get_field('type02_date_select'));
echo $date->format('dnY');
?>">STUFF HERE</div>
</a>
<?php endwhile; endif; ?>
So all the posts from 'type01' are showing up, but the posts from 'type02' aren't. Is it possible to archive both? In separate loops though as each post type will be wrapped in a different div class.
You need to reset your query for the next loop, add this between your loops:
<?php wp_reset_query(); ?>
I have a similar page like this and used this code to do it:
<h2>type01</h2>
<?php
$args = array(
'post_type' => array( 'type01' ),
'order' => 'asc',
'orderby' => 'title',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<li><?php the_title(); ?></li>
<?php endwhile; ?>
<?php wp_reset_query(); ?>
</ul>
<h2>type02</h2>
<ul>
<?php
$args = array(
'post_type' => array( 'type02' ),
'order' => 'asc',
'orderby' => 'title',
'posts_per_page' => -1
);
$loop = new WP_Query( $args );?>
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
<li><?php the_title(); ?></li>
<?php endwhile; ?>
Check out this link for more info: http://codex.wordpress.org/Function_Reference/wp_reset_query

Categories