Он не работает, потому что он обрабатывает 'author=$bp->displayed_user->id'
как строку, а не вставляет содержимое переменной. (Это основное различие между использованием одинарных и двойных кавычек. Для получения дополнительной информации прочитайте страницу справки PHP strings .)
Чтобы это исправить, попробуйте либо:
query_posts('author=' . $bp->displayed_user->id);
или
query_posts("author={$bp->displayed_user->id}");
Тем не менее, я лично рекомендую первый подход, так как он более четко описывает происходящее.