How to filter get previous post function by meta value DESC and post date DESC?
My loop displays featured posts and then posts in reverse chronological order.
However when I use ?php echo get_previous_post(); ?
it grabs posts in reverse chronological order.
How do I add a filter to the previous post function similiar to this but instead filter by an array like this: 'orderby' = array( 'meta_value' =
'DESC', 'date' = 'DESC')
?
Code:
UPDATE: Cleaned up index.php loop after help from @sMyles and @JackJohansson
Index.php loop:
$args = array(
'posts_per_page' = - 1,
'meta_key' = 'meta-checkbox',
'orderby' = array( 'meta_value' = 'DESC', 'date' = 'DESC')
);
$posts = new WP_Query( $args );
if($posts-have_posts() ){
while( $posts-have_posts() ){
$posts-the_post();
// Set to content template by default
$template = 'content';
// Change template to featured when `is_featured` meta has a value
if(get_post_meta(get_the_ID(), 'meta-checkbox', 'yes')){
$template = 'featured';
}
// Load template part
get_template_part( $template, get_post_format() );
}
}
UPDATE: As suggested, I added where I use the previous post function
Previous Post Function
div id="next-post"
?php $prev_post = get_previous_post();
if(!empty($prev_post)) {
echo 'a class="next-story" href="' . get_permalink($prev_post-ID) . '"Next Story/a';
echo 'a class="next-story-title" href="' . get_permalink($prev_post-ID) . '" title="' . $prev_post-post_title . '"' . $prev_post-post_title . '/a';
} ?
/div
Function For Featured Posts:
function sm_custom_meta() {
add_meta_box( 'sm_meta', __( 'Featured Posts', 'sm-textdomain' ), 'sm_meta_callback', 'post' );
}
function sm_meta_callback( $post ) {
$featured = get_post_meta( $post-ID );
?
p
div class="sm-row-content"
label for="meta-checkbox"
input type="checkbox" name="meta-checkbox" id="meta-checkbox" value="yes" ?php if ( isset ( $featured['meta-checkbox'] ) ) checked( $featured['meta-checkbox'][0], 'yes' ); ? /
?php _e( 'Featured this post', 'sm-textdomain' )?
/label
/div
/p
?php
}
add_action( 'add_meta_boxes', 'sm_custom_meta' );
function sm_meta_save( $post_id ) {
// Checks save status
$is_autosave = wp_is_post_autosave( $post_id );
$is_revision = wp_is_post_revision( $post_id );
$is_valid_nonce = ( isset( $_POST[ 'sm_nonce' ] ) wp_verify_nonce( $_POST[ 'sm_nonce' ], basename( __FILE__ ) ) ) ? 'true' : 'false';
// Exits script depending on save status
if ( $is_autosave || $is_revision || !$is_valid_nonce ) {
return;
}
// Checks for input and saves
if( isset( $_POST[ 'meta-checkbox' ] ) ) {
update_post_meta( $post_id, 'meta-checkbox', 'yes' );
} else {
update_post_meta( $post_id, 'meta-checkbox', '' );
}
}
add_action( 'save_post', 'sm_meta_save' );
Topic featured-post next-post-link previous-post-link loop filters Wordpress
Category Web