Sitefinity CMS allows you to unpublish and then delete the PageNode and the underlying PageData through the code.
To unpublish and delete a page:
Get the page node or data.
When deleting the page, first, you must get the page node or data. For more information about finding a specific page node and data, see For developers: Query pages.
Unpublish the page.
It's a good practice, to set the ApprovalWorkflowState to Unpublished before doing the deletion.
The following example uses the Native API to unpublish the page with the specified Title:
PageManager pageManager = PageManager.GetManager();
var page = pageManager.GetPageNodes().Where(pn => pn.Title == "Test").FirstOrDefault();
page.ApprovalWorkflowState = "Unpublished";
Delete the page.
After you get and unpublish the page, you delete it.
Save the changes.
Finally, you must save the changes.
To delete a page you can use the Native API or the Fluent API.
To delete a page using the Native API, you must use the PageManager class. For more information, see Deleting a page using Native API.
To delete a page using the Fluent API, you must use the page facade. For more information, see Deleting a page using Fluent API.
To delete a specific page with the Native API, you use the PageManager class and LINQ queries.
The following example deletes the page with the specified Title:
PageData page = pageManager.GetPageDataList().Where(pD => (pD.Title == pageTitleToDelete && pD.Status == ContentLifecycleStatus.Live)).FirstOrDefault();
First, you initialize the PageManager. Then, you get the page node using GetPageDataList and filtering based on the Title and Status properties. To delete the page, you call the Delete method. Finally, you save the changes.
.Where(pN => (pN.Page !=
&& pN.Page.Title == pageTitleToDelete))
First, you get the page node of the page data with the specified Title. Then, you delete the page using the Delete method. Finally, you save the changes.
Back To Top