In order to avoid the headache of possible broken internal links to Posts, there is a very useful plugin named RB Internal Links that we recommend using. It adds an extra button to your WordPress Visual Editor that makes it easy to search for and link to your Pages and Posts (and even Categories) and will keep your links intact, even if you change your Permalink Structure.
Once you have installed the RB Internal Links plugin, a new option for RB Internal Links will be available under WordPress > Settings. Click on this to view (and change if you want) the RB Internal Links settings.
Make sure the "Enable WYSIWYG plugin" option is checked. You can also adjust the "Return to shortcode" and "Default text for link if not specified" settings. The first one doesn't affect how links appear on your site, just how you see them when adding the links in the WYSIWYG editor. Feel free to play around with the settings as you like.
Next, we can either create a new Page or Post and create a link to a Post.
When you click the RB Internal Links button, it pulls up the RB Internal Linker window where you will choose the Post, Page, Category (or even Custom Type) that you want to link to.
Please note, if you want to, you can even link to an entire category of Posts, not just an individual Post. For this example will link to an individual Post. I'll use the search function to make it easier to find the Post I want. Once we have selected the Post we want to link to, simply click the "Insert link" button to insert our link.
Depending on whether you chose to pull the Post ID or Post slug (back in the RB Internal Links settings), you will see one of the following types of shortcode:
Even if we change our Permalinks, the links to our Posts will be preserved.