If you&#x27;re using nginx, I&#x27;m fairly sure you can do an &#x27;internal&#x27; directive so that `?id=12345` style URLs won&#x27;t work when you try typing them in a browser, but nginx can still rewrite the URLs to map slugs to IDs.<p>I haven&#x27;t tried it with WordPress, but I did do something similar on a custom CMS.<p>That said, there are better approaches. You can use a plugin to set publish dates in the future, and before that the page will return a 404 (unless you&#x27;re logged in).