I want to redirect every custom taxonomy to the first post in the loop.
For example:
I have a list of cities (taxomomy) like boston, denver, new york... If I click the archive of the taxonomy, I want to redirect to the fist city in the list. In this case boston.
I found an example to do this here: https://wordpress.stackexchange.com/questions/207298/redirecting-category-link-to-first-child-post
function redirect_cat_wpse_207298() {
if (is_tax()) {
global $post;
wp_safe_redirect(get_permalink($post->ID));
die;
}
}
add_action('template_redirect','redirect_cat_wpse_207298');
But now it redirects always to the oldest post. Is there a way to change to order to the newest post?
You are getting redirected to the first published post of specific taxonomy. you need to modify the query such that it must take the latest published post in your $post
global variable. Please try to add this filter and have a test. Hope this will resolve your query.
add_action( 'pre_get_posts', 'order_by_date_callback' );
function order_by_date_callback ( $query )
{
if (($query->is_main_query()) && (is_tax()))
$query->set( 'orderby', 'date' );
$query->set( 'order', 'DESC' );
}