Вы делаете не совсем правильно.
Во первых, лучше использовать WP_Query()
Во вторых, рандомные выборки лучше делать не так. Как сделано у вас - может тормозить, такой запрос нельзя кэшировать.
Лучше отобрать штук 100-200 записей, можно даже с рандомной сортировкой, закэшировать их, позже на php перемешать полученный массив, и показать только 10 записей.
примерно вот так:
https://gist.github.com/Dimasmagadan/102bcfad9a83a...
Это все нужно будет запихать в функцию, и прицепить к ней action (как советуют в соседнем совете)
add_action('wp_ajax...
В нужном месте сайта выводим пустой див с любым классом или id. Такой блок можно спокойно кэшировать.
Цепляем к сайту js. В котором проверяем наличие этого блока ( if( $('.our-class').length )... ) , если есть, делаем ajax запрос к сайту, полученные данные вставляем в наш див.
Так при каждом обновлении страницы будет рандомный текст в этом блоке.
Можно пойти дальше, забирать с сервера не 10 записей, а все 100. Кэшировать их на стороне клиента в localStorage, так будет только один запрос к серверу при первой загрузке. Все остальные обновления этого блока будут идти без обращения к серверу, забирать с localStorage