Не уверен насчет остальной логики вашего кода, но одной проблемой является тот факт, что вы используете одну и ту же переменную $tag
для циклического перемещения по $posttags
, а также для сохранения значения первого тега.Вместо того, чтобы делать что-то настолько сложное, почему бы просто не использовать первое значение в вашем массиве $posttags
.
Как то так -
<? // Start related posts by tag
$posttags = get_the_tags();
if ($posttags) {
query_posts('tag='.$posttags[0].'&posts_per_page=-1');
//rest of your code here