Epey kurcaladım ancak işin içinden çıkamadım;

Single.php dosyasına
<a class="<?php $category = get_the_category(); echo $category[0]->cat_name;?>"  href="<?php echo get_post_meta(get_the_ID(), "link", $single = true); ?>" target="_blank"></a>
kodunu kullanarak kategoriye göre özel alan çekiyorum. Class ile kategori adına css tanımladım.

Benim istediğim eğer o kategorideki yazıya özel alan değeri girilmezse tanımladığım link hiç görünmesin.

Bu haliyle css-background verdiğim için özel alan tanımlanmasa bile background orada çıkıyor.