In many situations, you will need to load a Page object using its unique numerical ID from the database. As mentioned earlier, pages are actually extensions of the Collection object, so you will actually be loading the page by its collection ID.
Getting ready
We will need to know the numerical ID of the page that you are attempting to load. Often this will be stored in other objects, perhaps even a custom entity that you have stored in the database. For example, say you have a recipes table in the database, and each recipe has its own page in the concrete5 website. You store the page ID for each recipe, so you can load the relevant Page object whenever necessary.
How to do it...
First you will have to get the page ID for the Page object that you are trying to load. For this example, we will just hard-code the ID of the page that we are loading. The steps are as follows:
Open /config/site_post.php in your favorite code editor.
First, let's store the ID of the page we are loading into a variable. In real-world use, you will likely have this ID stored in a database table, or available from some other code that you have run. The ID of the home page in concrete5 defaults to 1, so we will use that for our page's ID:
$pageId = 1; // load the home page
Now that we have the ID of the page that we need to load, use the getByID function to get the Page object that we need:
$page = Page::getByID($pageId);
We can inspect the $page variable and verify that it contains a Page object.
my_debug($page);
How it works...
The page ID (also known as collection ID) is unique in the database, so calling the getByID function will load the correct page data and return a Page object that you can interact with.