How To Get A List Of Unpublished Pages in Umbraco

When content editors are adding content within Umbraco, they might not always want to instantly publish every page to the website straightaway.  You can do this by setting a pages publish date to a future date, as described in How To Unpublish a Page In The Umbraco Backend.   An unpublished page post is a page post that won’t be visible on your page and from my experience, it's really easy to forget where you've created unpublished pages.

When you're creating backend Umbraco packages, sections and custom backend pages, you may need to display a list of unpublished pages to help make the content editors' lives a little easier.  On the majority of sites I've worked on that's needed this type of functionailty, it's been the news, or blog post section where I've implemented an unpublished page list.  If you only need to find all the unpublished pages of a certain document type, you can use the GetContentOfContentType() and then filter those pages by it's published state, like so:

            var blogType = DocumentType.GetByAlias("alias");
            var tutorials = ApplicationContext.Current.Services.ContentService.GetContentOfContentType(blogType.Id);

Now we have a list of IContent pages, we can use the IContent Published property to filter out any unpublished pages, like so: 

            var unpublishedPages = tutorials
                .Where(y => y.Published == false)
                .OrderByDescending(b => b.PublishDate);

Takeaway

When you work with the content service you can either work with the Content Service API, which is slower and talks to the the database directly, or the Content Service that commutes with the Examine cache.  As performance won't be as big of an issue in a backend page/extensions as it would be on the frontend side of the website, the content service is an acceptable API to use.  When you work with the content type service API, you will get published and unpublished pages back, which you can filter out using the 'Published' property.

submit to reddit

Jon D Jones

Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge

Back to top