Single.php não está sendo carregado quando o permalink só contém informações da data

Estou criando um site para um projeto de foto onde o artista tirou fotos e fez entrevistas todos os dias do ano. Como tal, eu gostaria de manter a estrutura de URLs para postagens o mais simples possível – significando mysite.com/month/day, ou photoproject.com/12/5.

Quando eu coloco minhas postagens permalinks para /% monthnum% /% day%, os links são gerados corretamente, mas index.php é usado para servir as postagens em vez de single.php. Se eu alterar os permalinks para include outras informações mais “exclusivas”, como o título da publicação, então use single.php.

Estou assumindo que isso tem algo a ver com o fato de que, no que diz respeito ao wordpress, meu formato de URL não é único o suficiente por publicação. Alguém tem uma solução / solução alternativa?

EDITAR: Como os comentários abaixo são delineados, meus URLs são obviamente interpretados como arquivos de data e exibidos como tal. Neste caso, minha pergunta pode ser “Existe uma maneira de dizer ao WordPress para não interpretá-los como arquivos de data?”

Solutions Collecting From Web of "Single.php não está sendo carregado quando o permalink só contém informações da data"

Você poderia forçar a mão do WP aqui com um filtro e ação. Fazer isso não me dá os fuzzies quentes – eu realmente não testei isso, então pode ter efeitos colaterais indesejados. Talvez haja uma maneira melhor de fazer isso.

O primeiro passo (após a configuração de permalinks para /%monthnum%/%day%/ ) é parse_query e testar pedidos onde o monthnum e o day estão configurados. Quando isso é verdade, desestabilizamos algumas coisas e definimos outras coisas, para enganar o WP para pensar que este é um pedido de publicação singular. Talvez isso quebre outros arquivos de data, eu não testei isso!

 function wpd_parse_query( $query ){ if( isset( $query->query_vars['monthnum'] ) && isset( $query->query_vars['day'] ) && 0 != $query->query_vars['monthnum'] ){ unset($query->is_archive); unset($query->is_date); unset($query->is_day); $query->is_single = 1; $query->is_singular = 1; } } add_action( 'parse_query', 'wpd_parse_query' ); 

O próximo passo é filtrar post_limits , e testar a condição incomum de ser uma postagem singular com um monthnum diferente do zero. Nesse caso, configuramos-no para retornar o primeiro post, no caso de haver mais de um.

 function wpd_post_limits( $limit, $query ) { if( $query->is_main_query() && $query->is_singular() && isset( $query->query_vars['monthnum'] ) && 0 != $query->query_vars['monthnum'] ){ return 'LIMIT 1'; } return $limit; } add_filter( 'post_limits', 'wpd_post_limits', 10, 2 ); 

Você poderia deixar essa parte se você não se importar com esse caso – se o modelo usa The Loop, ele apenas repetirá a marcação contida para cada publicação, embora todos os outros dados fora do loop se referirão ao primeiro post-título , shortlink, classs corporais, etc.

Agora, esses pedidos devem ser interpretados como posts singulares, as tags de modelo devem se comportar de acordo, e o modelo único será carregado.