how to use wordpress loop with grid system bootstrap? - wordpress

i want to show a strip row with two column contain wordpress loop content (title, exrept in green blocs) every row have columns with white and grey background that invert in each row like chess checker .
see the image for more detail.

EDITED ANSWER
I believe this is what you are looking for. This loops through all the posts you have and then sorts them the way your sketch looks.
<div class='container'>
<?php
$args = array(
'post_type' => 'post' // Get only posts
);
$the_query = new WP_Query ( $args ); // build query
$count = $the_query->post_count; // Check number of posts
<style>
.row:nth-child(even) .col-5:nth-child(even) { /* Select every even row and and even post */
background: #ddd;
}
.row:nth-child(odd) .col-5:nth-child(odd) { /* Select every odd row and odd post*/
background: #ddd;
}
</style>
<?php
while ( $the_query -> have_posts() ) : $the_query -> the_post();
$post_index = $the_query->current_post + 1; // $current_post = gets the post index in loop
if ( $post_index % 2 != 0 ) { // Open div if post is odd
echo '<div class="row" style="border: 2px solid red; padding: 20px; margin:30px;">';
}
if ( $post_index % 2 != 0) { // If post is odd then give one class
?>
<div class="col-xs-5 <?php echo "post_$post_index" ?>" style="border: 1px solid green;">
<h2><?php the_title(); ?></h2>
<p><?php the_excerpt(); ?></p>
</div>
<?php
} else {
?>
<div class="col-xs-5 col-xs-push-2 <?php echo "post_$post_index" ?>" style="border: 1px solid green;">
<h2><?php the_title(); ?></h2>
<p><?php the_excerpt(); ?></p>
</div>
<?php } // End if ( $post_index % 2 != 0)
if ( $post_index % 2 == 0 ) { // Close div if post is even
echo "</div>";
}
endwhile;
wp_reset_postdata();
?>
</div>
<!-- /.container -->
ORIGINAL ANSWER
This is the html you're looking for. Just change the class names to suit your needs. Since it is WordPress loop you have to do if else statements for when to start a new row and when to have a different color for the background.
.row {
border: 2px solid red;
padding: 10px 20px;
margin: 30px 0;
}
.col-xs-5 {
border: 1px solid green;
height: 100px;
}
.gray-bg {
background: #ccc;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container-fluid">
<div class="row">
<div class="col-xs-5"></div>
<div class="col-xs-5 col-xs-push-2 gray-bg"></div>
</div>
<div class="row">
<div class="col-xs-5 gray-bg"></div>
<div class="col-xs-5 col-xs-push-2"></div>
</div>
<div class="row">
<div class="col-xs-5"></div>
<div class="col-xs-5 col-xs-push-2 gray-bg"></div>
</div>
<div class="row">
<div class="col-xs-5 gray-bg"></div>
<div class="col-xs-5 col-xs-push-2"></div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

Related

Running the loop outside of wordpress

I know that this has been posted many times, but I have truly spent close to 60 hours trying to figure this out - this is not my strong point!
Im running wordpress, standard installation, no plugins or anything at this stage.
I am simply trying to display the most recent 3 posts from the blog, or if we could go one step further, most recent 3 from catx.
Here is my code, which I believe should work.
<?php
require '/home1/digita/public_html/articles/wp-load.php'; ?>
<section class="services blog sec-normal">
<div class="container">
<div class="service-wrap">
<div class="row">
<style>.wp-block-image {
max-width: 100%;
margin-bottom: 1em;
display: none;
}
a.more-link {
display: none;
}
.services .service-wrap .service-section a {
margin-top: 0px!important;
}
</style>
<?php if (have_posts()) :
while ( have_posts() ) : the_post();
?> <!-- ***** BLOG ***** -->
<div class="col-md-4" style="width: 30%;margin-top: -7%;margin-bottom: 10%;">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
<div class="service-section m-0" style="margin-top: 0.1%;">
<div class="title mt-0"><?php the_title(); ?></div>
<p class="subtitle"><?php the_content() ?> </p>
<hr>
Read more
</div>
</div>
<?php
// Stop the loop when all posts are displayed
endwhile;
// If no posts were found
else :
?>
<p>Sorry no posts matched your criteria.</p>
<?php
endif;
?>
</div>
</div>
</div>
</div>
</section>
The code does not return posts, and instead returns, "Sorry no posts matched your criteria." . Any advice?
Main query does not set it's data, because wp function did not run after wp-load.php in your code and main query must be set base on $_SERVER['REQUEST_URI'] that is a few complex.
But its good to use secondary query as simple way for your work:
<?php
require '/home1/digita/public_html/articles/wp-load.php';
$query = new WP_Query(array(
'post_type' => 'post',
));
?>
<section class="services blog sec-normal">
<div class="container">
<div class="service-wrap">
<div class="row">
<style>.wp-block-image {
max-width: 100%;
margin-bottom: 1em;
display: none;
}
a.more-link {
display: none;
}
.services .service-wrap .service-section a {
margin-top: 0px!important;
}
</style>
<?php if ($query->have_posts()) :
while ( $query->have_posts() ) : $query->the_post();
?> <!-- ***** BLOG ***** -->
<div class="col-md-4" style="width: 30%;margin-top: -7%;margin-bottom: 10%;">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
} ?>
<div class="service-section m-0" style="margin-top: 0.1%;">
<div class="title mt-0"><?php the_title(); ?></div>
<p class="subtitle"><?php the_content() ?> </p>
<hr>
Read more
</div>
</div>
<?php
// Stop the loop when all posts are displayed
endwhile;
// If no posts were found
else :
?>
<p>Sorry no posts matched your criteria.</p>
<?php
endif;
?>
</div>
</div>
</div>
</div>
</section>

Long URLs don't stay inside the Bootstrap column

I'm developing a WordPress theme with Bootstrap grids, and I see a problem in mobile view. Everything is fixed into the Bootstrap column, but there are some links in the references section that don't stay inside the column and make a mess of my grids and create a horizontal scroll bar:
I've tried everything and nothing works, please I need help.
Here is the code from the single.php:
<div class="c-content-box c-size-md" style="margin-top:4%;">
<div class="container">
<div class="row">
<div class="c-content-blog-post-card-1-grid">
<div class="row">
<div class="col-md-12">
<div class="col-md-8 wow animate fadeInLeft">
<div class="c-media 2 img">
<div class="c-overlay-wrapper">
<div class="c-overlay-content">
<?php the_post_thumbnail( '', array( 'style' => 'max-width:100%; height:auto;' ) ); ?>
</div>
</div>
</div>
<?php
while ( have_posts() ) : the_post();
get_template_part( 'template-parts/content', get_post_format() );
?>
<div class="col-md-12 c-margin-b-60">
<?php
the_post_navigation( array(
'prev_text' => '<button type="button" class="col-md-5 col-md-offset-1 col-xs-6 btn btn-md c-btn-red c-btn-square ">Post Anterior</button>',
'next_text' => '<button type="button" class="col-md-5 col-md-offset-1 col-xs-6 btn btn-md c-btn-red c-btn-square ">Próximo Post</button>',
));
?>
</div>
<?php
echo '<div class="col-md-12 c-margin-t-20">';
// If comments are open or we have at least one comment, load up the comment template.
if ( comments_open() || get_comments_number() ) :
comments_template();
endif;
endwhile; // End of the loop.
echo '</div>'
?>
</div>
<div class="col-md-4 ">
<div class="col-md-12 wow animate fadeInRight" >
<?php get_sidebar(); ?>
</div>
</div>
</main><!-- #main -->
</div><!-- #primary -->
</div>
</div>
</div>
</div>
</div>
You'll need to add some CSS to word-wrap your text.
div {
width: 100px;
border: 1px solid black;
margin: 5px;
}
.wrapped {
word-wrap: break-word;
}
<div>https://stackoverflow.com/questions/45800283/content-posts-doesnt-stay-inside-the-bootstrap-cols</div>
<div class="wrapped">https://stackoverflow.com/questions/45800283/content-posts-doesnt-stay-inside-the-bootstrap-cols</div>
.dont-break-out {
overflow-wrap: break-word;
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}

Customiser - BGColor and BGImage Display

Had this working in the past but suddenly its not. Below is the structure:
Thre is a setting and control for it as well, and the background color and image settings both work individually however when I have both settings it wont work, Originally I had it working that the color always worked unless a background image was selected and that would override it but now the color works and background-image doesn't. is there a way to get this working again?
<footer class="footer" role="contentinfo">
<div id="inner-footer" class="row">
<div class="large-12">
<div class="medium-6 large-6 columns">
<div id="dragoncove-footer-textleft" class="float-left">
<?php { echo get_theme_mod( 'dragoncove_footer_textleft', 'No Copyright Information Added Yet' ); } ?>
</div>
</div>
<div class="medium-6 large-6 columns">
<div id="dragoncove-footer-textright" class="float-right">
<?php { echo get_theme_mod( 'dragoncove_footer_textright', 'No Information Added Yet' ); } ?>
</div>
</div>
</div>
</footer>
Here is the Functions:
function dragoncove_footer_customize_css() {
?>
<style>
<?php echo get_theme_mod( 'dragoncove_footer_textleft', 'Content Left Not Added Yet.' ); ?>
<?php echo get_theme_mod( 'dragoncove_footer_textright', 'Content Right Not Added Yet.' ); ?>
footer.footer {background-color: <?php echo get_theme_mod('dragoncove_footer_bgcolor', ''); ?>; }
footer.footer {background-image: url(<?php echo get_theme_mod('dragoncove_footer_bgimage', '') ?>); }
footer.footer {padding: <?php echo get_theme_mod('dragoncove_footer_padding', ''); ?>; }
footer.footer {color: <?php echo get_theme_mod('dragoncove_footer_navfontcolor', ''); ?>; }
</style>
<?php
}
add_action( 'wp_head', 'dragoncove_footer_customize_css');
found the fix. adding the ()
footer.footer {background-image: url(<?php echo get_theme_mod('dragoncove_footer_bgimage', '()') ?>); }

Why is my post being created inside another post? [ Wordpress ]

I know there is probably a solved question like this already, but I can't seem to find it.
I am just starting out so this may be a noob question, please bear with me ><
I am trying to display the top 3 recent posts on front-page.php of my site, the problem is that the post keeps being created within itself.
Here is the CSS involved.
.news-container{ background-color: #fff;
padding: 2em;
max-width: 600px;
heigth:300px;
text-align: left;
}
.has-thumbnail {
position: relative;
padding-left: 200px;
}
.post-thumbnail {
position:absolute;
top:0;
left:0;
}
article.post { border-bottom: 1px solid #bbbbbb;
margin-bottom: 3em;
}
article.post:last-of-type { border-bottom: none;
}
Here is the front-page.php code involved.
<div class="news-container">
<?php
$recentposts=get_posts('showposts=5');
if ($recentposts) {
foreach($recentposts as $post) {
setup_postdata($post);
?>
<article class="post <?php if ( has_post_thumbnail() ) { ?> has-thumbnail <?php } ?> ">
<div class="post-thumbnail">
<?php the_post_thumbnail('small-thumbnail'); ?>
</div>
<p><?php the_time('F j, Y'); ?>
<h3><?php the_title()?> </h3>
<p>
<?php echo get_the_excerpt(); ?>
Read more »
<br><br> <br><br> <br><br>
</p>
<?php
}
}
?>
</article>
</div>
Why is this happening? Thanks for reading this!
Try this updated code i think you not close all tags properly. This will solve your problem.
<div class="news-container">
<?php
$args = array('posts_per_page' => 5, 'post_type'=>'post' );
query_posts($args); $post_query = new WP_Query( $args );
while($post_query->have_posts()){ $post_query->the_post();
?>
<article class="post <?php if ( has_post_thumbnail() ) { ?> has-thumbnail <?php } ?> ">
<div class="post-thumbnail">
<?php the_post_thumbnail('small-thumbnail'); ?>
</div>
<p><?php the_time('F j, Y'); ?> </p>
<h3><?php the_title()?> </h3>
<p><?php echo get_the_excerpt(); ?>
Read more »
<br><br> <br><br> <br><br>
</p>
</article>
<?php } ?>
</div>
You can accomplish this with the WP Latest Posts Plugin: https://wordpress.org/plugins/wp-latest-posts/screenshots/

Wordpress sidebar goes wrong way in bootstrap

Basically, i split up the page in 2 columns, and tried inserting sidebar code into the right one (span4). But for some reason, it keeps showing under span8
page code
<div class="row pull-right"><div class="span12" id="hdimg"></div></div>
<div class="row pull-right" id="pgg">
<div class="span8" id="pagecn">
<?php the_post(); ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<div class="entry-content">
<div class="ttl">
<?php if ( is_singular() ) {echo '<h1 class="entry-title">';} else {echo '<h2 class="entry-title">';} ?><a title="<?php printf( __('Read %s', 'blankslate'), the_title_attribute('echo=0') ); ?>" rel="bookmark"><?php the_title(); ?></a><?php if ( is_singular() ) {echo '</h1>';} else {echo '</h2>';} ?>
</div>
<div id="cn">
<?php the_content(); ?>
</div>
</div>
</div>
</div>
<div class="span4">
<?php if ( is_active_sidebar('primary-widget-area') ) : ?>
<div id="primary" class="widget-area">
<ul class="sid">
<?php dynamic_sidebar('primary-widget-area'); ?>
</ul>
</div>
<?php endif; ?>
</div>
</div>
</div>
<?php get_footer(); ?>
css for it
#hdimg {
width: 948px;
height:185px;
background-image: url(images/banner.jpg);
}
#pgg {
width:948px;
margin-top:4px;
background-color: white;
padding-top: 10px;
padding-bottom: 20px;
}
#cn {margin-top: 15px;}
link to see live
http://soloveich.com/project3/
#pgg {
width:948px;
margin-top:4px;
background-color: white;
padding-top: 10px;
padding-bottom: 20px;
}
Remove width
#pgg {
margin-top:4px;
background-color: white;
padding-top: 10px;
padding-bottom: 20px;
}
I see what you tried to do but you used it incorrectly - fix background in a different way
<div class="" id="hdimg"></div>
This is for your header - remove grid class
change #hdimg width to
hdimg { width: 960px !important; }

Resources