<?php
$temp_post = $post; // Storing the object temporarily
$args = array('cat'=> 487);
$the_query = new WP_Query($args);
// The Loop[2]
if($the_query->have_posts()) :
while($the_que1Gry->have_posts()) :
$the_query->the_post();
get_template_part('content', get_post_format());
endwhile;
$post = $temp_post; // Restore the value of $post to the original
?>
We would like to create a table of contents at the beginning of the display.
I’ve attempted to begin building this by prefixing a preliminary Loop[1] (copied from the Standard Loop on
https://developer.www.ads-software.com/reference/classes/wp_query/)
which would extract the titles of the posts, as follows:
<?php
$temp_post = $post; // Storing the object temporarily
$args = array('cat'=> 487);
$the_query = new WP_Query($args);
// The Loop[1]
if($the_query->have_posts()) :
echo '<ul>';
while ( $the_query->have_posts()) :
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
endwhile;
echo '</ul>';
// The Loop[2]
if($the_query->have_posts()) :
while($the_query->have_posts()) :
$the_query->the_post();
get_template_part('content', get_post_format());
endwhile;
$post = $temp_post; // Restore the value of $post to the original
?>
However, when I do this, pressing ‘Guest Plans’ produces the output:
The site is experiencing technical difficulties.
If I comment out Loop[2], I get the same result. This is surprising since Loop[1] is copied from https://developer.www.ads-software.com/reference/classes/wp_query/.
Can anyone give me hand here?
Thanks in advance.
I have created a Custom Post Type called Graves and I can get it working on the template files. But I’d rather create a normal WordPress Page called Graves and add some relevant written content first and below that, the Custom Post Type called Graves would populate it like an archive page.
I was thinking that I would need an actual Template file (Template Name: Graves Page Template) that would show up in the Page Attributes and I could select it for that particular page called ‘Graves’ and that would show me all the added graves as well as the written text above.
In the archive-grave.php template I have added the written content and it does what I want but it is not ideal as only I can change or add to the written content.
So how can I do it please?
Kind regards
Colin
]]>?>
<div class=”btn-group”>
<button type=”button” class=”btn btn-md btn-dark dropdown-toggle” data-toggle=”dropdown” aria-haspopup=”true” aria-expanded=”false”>
Dropdown
</button>
<div class=”dropdown-menu”>
<?php
$args = array(
‘post_type’ => ‘product’,
‘posts_per_page’ => 12,
‘tax_query’ => array(
array(
‘taxonomy’ => ‘product_visibility’,
‘field’ => ‘name’,
),
),
);
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post(); global $product;
?>
post->ID ) ?>”><?php echo esc_attr($loop->post->post_title ? $loop->post->post_title : $loop->post->ID); ?>
<?php endwhile;
wp_reset_query();
?>
<div class=”dropdown-divider”></div>
Separated link
</div>
</div><!– end button group –>
I’m developing a child theme of Onepress. I need all posts displayed inside a container div that is inside the main tag. I did it in my code, but, some posts are rendered outside the main tag in the browser. It breaks the layout. Any help will be deeply apprecciated!
Here’s the code in my file:
<div id="content" class="site-content">
<?php onepress_breadcrumb(); ?>
<div id="content-inside" class="container">
<div id="primary" class="content-area">
<main class="site-main" role="main">
<div class="container">
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post(); ?>
<div class="container">
<?php get_template_part( 'template-parts/content', 'custom' ); ?>
</div>
<?php endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>
</div>
</main><!-- #main -->
</div><!-- #primary -->
</div><!--#content-inside -->
</div><!-- #content -->
And this is the code rendered in the browser:
<div id="content" class="site-content">
<?php onepress_breadcrumb(); ?>
<div id="content-inside" class="container">
<div id="primary" class="content-area">
<main class="site-main search-page" role="main">
<div class="container">
SOME POSTS HERE
</div>
</main><!-- #main -->
<!-- OTHER POSTS ARE INCORRECTLY HERE -->
<div class="container">
INCORRECTLY PLACED POSTS
</div><!-- incorrectly placed posts -->
</div><!-- #primary -->
</div><!--#content-inside -->
</div><!-- #content -->
So, anyone have a clue about how to fix this bug? Thank you, guys!
]]>In my plugin I’m running a secondary loop as follows:
function my_code() {
// ...
$query = new WP_Query( array(
'p' => $post_id,
'post_type' => array( 'post' )
) );
if ( $query->have_posts() ) $query->the_post();
echo "- My post: " . get_the_ID() . "\n"; // Expected $post_id.
$content = get_the_content();
echo "- My post: " . get_the_ID() . "\n"; // Expected $post_id, but I get something else.
// ...
wp_reset_postdata();
}//end my_code()
The problem arises when I retrieve the content of my post: there’s a third-party plugin that runs a secondary query when I get the content of my post and this messes my own query.
Here you have a Minimal Working Example:
function nelio_test_queries() {
$query = new WP_Query( array(
'p' => 1, // /!\ Set an ID here.
'post_type' => array( 'post' )
) );
if ( $query->have_posts() ) $query->the_post();
echo "- My post: " . get_the_ID() . "\n"; // Expected 1
second_plugin_does_some_stuff_via_hooks();
echo "- My post after the second plugin did some stuff: " . get_the_ID() . "\n"; // Expected 1
die();
}//end nelio_test_queries()
add_action( 'wp_ajax_nelio_test_queries', 'nelio_test_queries' );
function second_plugin_does_some_stuff_via_hooks() {
$query = new WP_Query( array(
'p' => 2, // /!\ Set an ID here.
'post_type' => array( 'post' )
) );
if ( $query->have_posts() ) $query->the_post();
echo "- Related Post: " . get_the_ID() . "\n"; // Expected 2
wp_reset_postdata();
}//end second_plugin_does_some_stuff_via_hooks()
Call the example via AJAX:
jQuery.ajax({
url:ajaxurl,
data:{action:'nelio_test_queries'},
success: x => console.log(x)
})
and the expected result is:
- My post: 1
- Related Post: 2
- My post after the second plugin did some stuff: 1
but what you’ll get is:
- My post: 1
- Related Post: 2
- My post after the second plugin did some stuff: 2
How do I fix this? Keep in mind that I don’t know if the third-party plugin is or is not installed… Moreover, it’s not about this specific third-party plugin; any other plugin or theme that hooks into WordPress and runs whilst my secondary query is still active can mess my own code
Any help would be appreciated!
P.S. I know I can use $query->reset_postdata()
, but do I really need to run it every time I call a function such as get_the_content
or get_the_title
, just to make sure that no other plugins changed the secondary query I’m running?
I notice there is no way to control where the brands are displayed within the loop. Is there an easy way to control that with a filter or hook?
I am trying to get the brand img to show above the title.
Thanks so much for your hardwork,
Gregory Bastianelli
Array
(
[home_url] => https://rawr.ur54.com
[site_url] => https://rawr.ur54.com
[version] => 3.2.6
[wp_version] => 4.9.3-alpha-42607
[wp_multisite] =>
[wp_memory_limit] => 40M
[wp_debug_mode] => 1
[wp_cron] => 1
[language] => en_US
[server_info] => LiteSpeed
[php_version] => 7.0.27
[php_post_max_size] => 8M
[php_max_execution_time] => 30
[php_max_input_vars] => 10000
[max_upload_size] => 5242880
[default_timezone] => UTC
[theme] => Array
(
[name] => damn
[version] => 1.0.0
[parent_theme] =>
)
[active_plugins] => Array
(
[0] => hello.php
[1] => perfect-woocommerce-brands/main.php
[2] => woocommerce-gateway-paypal-powered-by-braintree/woocommerce-gateway-paypal-powered-by-braintree.php
[3] => woocommerce-gateway-stripe/woocommerce-gateway-stripe.php
[4] => woocommerce-services/woocommerce-services.php
[5] => woocommerce/woocommerce.php
[6] => wordpress-beta-tester/wp-beta-tester.php
[7] => wordpress-importer/wordpress-importer.php
)
[pwb_options] => Array
(
[version] => 1.6.0
[wc_pwb_admin_tab_brand_single_position] => before_title
[old_wc_pwb_admin_tab_slug] => brand
[wc_pwb_notice_plugin_review] =>
[wc_pwb_admin_tab_slug] =>
[wc_pwb_admin_tab_brand_desc] => yes
[wc_pwb_admin_tab_brand_single_product_tab] => yes
[wc_pwb_admin_tab_brands_in_loop] => brand_image
[wc_pwb_admin_tab_brands_in_single] => brand_image
[wc_pwb_admin_tab_brand_logo_size] => shop_thumbnail
)
)
]]>I am looking for help to modify the loop on my custom archive page to group the podcasts by season. How would I modify this loop?
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<div class="col-md-3">
<a href="<?php the_permalink() ?>"><div class="podcast-thumb"><img src="<?php the_field('episode_image'); ?>" class="aligncenter" style="margin-bottom:10px;"></div></a>
<h3 style="color:#f28fad; font-size:20px; margin-top:10px; "><a href="<?php the_permalink() ?>" >
<?php the_field('podcast_episode_title'); ?></a></h3>
<?php echo strip_tags( get_the_excerpt() ); ?>
<div class="clearfix"></div>
</div>
<?php endwhile; ?>
<?php else : ?>
<h1>404 | Nothing Found</h1>
<p>We're sorry, but the page you're looking for cannot be found. Please return to our <a href="<?php echo get_option('home'); ?>">homepage</a> or try again.</p>
<?php endif; ?>
<div class="pagination">
<?php
global $wp_query;
$big = 999999999;
echo paginate_links( array(
'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var('paged') ),
'total' => $wp_query->max_num_pages
) );
?>
Thanks for any help you can offer.
]]><h2 class=”faq-h2″><?php the_title(); ?></h2>
<?php $args = array (‘post_type’ => ‘faq’); $the_query = new WP_Query($args); ?>
<?php if ($the_query->have_posts() ) :
while ($the_query->have_posts() ) :
$the_query->the_post(); ?>
<div class=”half”>
<div class=”tab”>
<input id=”tab” type=”checkbox” name=”tabs”>
<label for=”tab”><?php the_field(‘question’); ?></label>
<div class=”tab-content”><p><?php the_field(‘answer’); ?></p>
</div> <!—- end tab-content—->
</div> <!—- end tab—->
</div> <!—- end half—->
<?php endwhile; endif; ?> `
This code displays all the posts but when I click on the relevant checkbox it will only action the first one. I have done the styling in CSS and am having problems with the Loop. Any Help out there.
]]>I am new to PHP and am new to the loop. I have created a static homepage, and wish to display my blog feed on my homepage (website can be found here
For my homepage, I created a home-page.php template to use. In the template I added the following code:
<?php
if (have_posts()) :
while (have_posts()) : the_post();
endwhile;
else :
echo '<p>No posts to display</p>';
endif;
?>
Which to my understanding is the start of a very simple loop. When I view my homepage, nothing is showing. I have test posts so I am unsure why nothing is being pulled.
I’d appreciate any help as to why this it’s not showing and if I have done something wrong, as I cannot see anything wrong with my code so far.
Thank you.
]]>