How can I improve this slow query in my wordpress site?
'publish' is a string

+ is an _arithmetic operator

So  'publish' + _pad_term_counts()  is probably not anything useful.

How long does each SELECT take?

Please provide SHOW CREATE TABLE and EXPLAIN SELECT and how big the tables are.

Descending index -- Not a problem; MySQL simply scans through the data in reverse order.

However, no index is useful for the one ORDER BY you mentioned -- This is because the GROUP BY is needed first.  Can that be removed?