I have set up a Custom Post Type called “Portfolio”. If I view the CPT’s Archive page without adding any posts to it (/portfolio or /?post_type=portfolio), it returns a 404 page. Is there a way to show the archive page but personalize the message? Ie “there are currently no portfolio items here right now”.
As soon as I add 1 post into the portfolio custom post type, the archive page loads fine.
Here are other posts that match my issue
http://wordpress.org/support/topic/empty-archives-returning-404
what have you set the “has_archive” option to in your CPT? Also, make sure to reset your permalinks.
As for putting a customized message, you can create an archive template specific to that CPT. If the CPT is “portfolio”, then you can create a template called “archive-portfolio.php” and customize it as you see fit.
I also had this issue when the filters on the archive page are getting empty results.
The function will check if the query is for a specific taxonomy
YOUR_TAXONOMY_NAME
replace this part with the slug of your taxonomy. Then we check the current post type to check if there is a specific template file. If there is none we will default back to the archive.php. If you add this function to your functions.php it will stay on the archive template when your taxonomy has no results.