Почему это говнокод?
if(is_singular( 'portfolio' ) ) {
Это так называемый WordPress codestyle (расставление скобок и пробелов) - забудьте как страшный сон, фу. 
А если уж и следуете - то следуйте везде, а у вас тут так, тут иначе. 

<?
Нельзя короткую открывающую конструкцию использовать, пишите полностью. 
Исключение - <?= - я бы даже рекомендовал использовать такую запись, если кроме вывода действительно ничего не надо. 

Код вперемешку с разметкой - это очень плохо и сложно для восприятия. WordPress, к сожалению, не предлагает никаких штатных опций этого избежать, им то ли кажется, что это норма, то ли объём кодовой базы такой, что переписать нормально возможности нет. Сами себе придумайте вариант разделения от простого выноса логики в функции (например, в последнем блоке кода выдумайте какую-нибудь функцию getPostTags и ей получайте разметку) до шаблонизаторов. 

Отступы крайне странные - читать неудобно, кроме того, код фолдинг сломается в Саблайме например (он использует отступы для этого). Пишите код на той же вложенности, где тег открыли. 

В логику вникать лень. Сами посмотрите ещё раз и оцените, есть ли там повторяющиеся куски кода, можно ли сделать эффективнее...

Как можно заметить, большая часть косяков относится к визуальному форматированию - и это логично, ибо код мы гораздо чаще читаем, чем пишем, и надо сделать этот процесс удобным. 
Приведите форматирование к единому виду - и нормально будет. 
Говно, не говно - у меня вот крайне редко возникает мысль "вау, великолепный код!". 
Если код можно без проблем прочесть и понять чего автор хотел - он нормальный, и это окей.
Как минимум форматирования нет и вся лапша в одной функции - получается сложночитаемая не логическая фигня.
Разбей на функции. Убери повторы в функцию и передавай в неё различия. Настрой автоматическое форматирование по сохранению хотя бы.

И возьми за правило режим дебага включать - уверен нотисы есть.