不必要的分号可能是导致错误的原因。<?php } else { ;?> 应该是<?php } else { ?>. 尝试以下操作:
<?php if (in_category( array(6,14,15,13) )) { ?>
<div id="eatheader">
<?php } elseif (in_category( array(7,11,12,10,9) )) { ?>
<div id="goheader">
<?php } elseif (in_category( array(4,16,17,18,19) )) { ?>
<div id="playheader">
<?php } elseif (in_category( array(3,22,21,26) )) { ?>
<div id="shopheader">
<?php } elseif (in_category(5)) { ?>
<div id="talkheader">
<?php } else { ?>
<div id="defaultheader">
<?php } ?>
 如你所见,我还修改了
<?php } elseif (in_category( array(\'5\') )) { ?> 到
<?php } elseif (in_category(5)) { ?> 因为您只指定了一个类别。
可以将相同的代码重写为以下内容(以防对您更具可读性和可理解性):
<?php
    if ( in_category( array( 6,14,15,13 ) ) ) {
        echo \'<div id="eatheader">\';
    }
    elseif ( in_category( array( 7,11,12,10,9 ) ) ) {
        echo \'<div id="goheader">\';
    }
    elseif ( in_category( array( 4,16,17,18,19 ) ) ) {
        echo \'<div id="playheader">\';
    }
    elseif ( in_category( array( 3,22,21,26 ) ) ) {
        echo \'<div id="shopheader">\';
    }
    elseif ( in_category( 5 ) ) {
        echo \'<div id="talkheader">\';
    }
    else {
        echo \'<div id="defaultheader">\';
    }
?>