カスタム投稿タイプで記事の投稿ステータスを取得する際には、以下のように直接ポストオブジェクトから取得しようとすると、期待した結果が得られないことがあります。
if ($post->post_status=='publish') {
代わりに、WordPressの関数get_post_status()
を使用して投稿IDを指定し、ステータスを取得します。以下にその使用例を示します。
if (get_post_status($post->ID)=='publish') {
この方法であれば、正確に投稿ステータスを取得することが可能です。