Por vezes precisamos de exibir conteúdo com base na existência de uma página ou em uma postagem personalizada não hierárquica por URL no WordPress. É importante lembrar que os tipos de postagem personalizados não são postagens. Eles não têm nenhuma relação direta com posts e você deve pensar neles separadamente…
Recorrendo á função get_page_by_path(), podemos verificar se existe uma página por url, ou verificar a existência de varias páginas ao mesmo tempo, vasta criarmos uma lista com os caminhos a verificar.
No exemplo, temos duas páginas diferentes para o mesmo slug de página, é assumido que determinadas páginas terão o mesmo título e apenas páginas pai diferentes. Então, queremos verificar se uma página existe por URL?
Nota Sobre a Hierarquia de Páginas e Slug’s: Se tiver uma hierarquia de páginas terá de passar o slug completo incluindo a página base para a função get_page_by_path().
$page_paths = array( 'wordpress/caminho-de exemplo-a-verificar', 'css/caminho-de exemplo-a-verificar' ); foreach($page_paths as $page_path) { $page = get_page_by_path($page_path); if(!$page){ echo ''.$page_path.'
Não existe.'; } else{ echo ''.$page_path.'
Existe e resolve para:'.get_permalink($page->ID).'
'; } }
A função get_page_by_path() é bastante útil nesse caso, que recupera uma página dada a sua rota. Para verificar se existe uma postagem personalizada de tipos de postagem personalizados não hierárquicos por URL, teremos de fornecer o terceiro parâmetro á função, como pode ser conferido na documentação oficial do WordPress: função get_page_by_path().