返信ありがとうございます!
返信を読んで、漠然とですが解決の糸口が見えたような気がして試していたら、ようやく目的の形にたどり着きました。
結果としては、
①if ( ! empty
で囲んでやることで解決しました。
$cats = get_the_category( $post_id );
if ( ! empty( $cats ) ) {
$cat_list = '';
foreach( $cats as $cat ) {
$cat_list .= ' #' . $cat -> name;
}
}
②投稿者IDから表示名を引っ張ることで達成しました。
$author = get_userdata( $post -> post_author );
$author_name = $author -> display_name;
返信でループの外であるという認識がはっきりしたことで、うまくいきました。
本当にありがとうございます。