Em um novo projeto, estamos usando wp-super-cache (o plugin preferido do cliente) para criar os arquivos html estáticos para tipos de conteúdo personalizados. Mas estamos tentando descobrir se tudo está sendo armazenado em cache corretamente.
Esta é uma pergunta em duas partes.
1) O tema que criamos utiliza modelos de página para gerar o json que é ingerido por meio de chamadas ajax. ie se você acessar a página: theurl.com/sample - você obterá o json puro. Embora exista uma versão não javascript de todas as páginas e postagens, o Ajax direciona o front-end desse tema. Removemos o cabeçalho e o rodapé desses arquivos para que ele seja puro json e estamos tentando descobrir como determinar se o json está sendo armazenado em cache. Em teoria, os dados seriam armazenados em cache porque, tecnicamente, é uma página exibida pelo wordpress. Mas, como podemos descobrir se ele está sendo armazenado em cache?
2) Estamos usando o plugin json api para fornecer também certos dados de postagem. http://wordpress.org/extend/plugins/json-api/ Neste exemplo, digamos que estamos utilizando o método padrão de saída do plugin e acessando esta página: meu url.com/category/news?json=1 - alguém sabe como podemos verificar se essa saída está sendo armazenada em cache? Se não estiver sendo armazenado em cache, que método faria isso acontecer?
Parece não haver muita informação sobre isso online, portanto, no espírito de criar sites wordpress atraentes e otimizados, ajude um irmão
O WP Super Cache examina as páginas do seu site WordPress em busca de algumas tags HTML antes de armazená-las em cache.
Suas páginas provavelmente não possuem
</html>
tag (problema comum); nesse caso, tente adicionar algo como//</html>
- isso é uma solução alternativa, e o WP Super Cache deve gerar versões em cache de suas páginas.Por que o WP Super Cache faz assim? Veja, não há uma maneira óbvia de verificar se uma página está apenas carregada pela metade, do que verificar se todas as tags HTML básicas existem e estão fechadas corretamente.
Nas próprias palavras de Donncha (desenvolvedor do WP Super Cache) : "É para impedir que as páginas geradas pela metade sejam armazenadas em cache".
fonte
NOTA DE SEGURANÇA: Esta (e as outras soluções) não devem ser usadas, a menos que você tenha como substituir o
Content-Type: text/html
cabeçalho que o WP Super Cache envia com oapplication/json
valor apropriado . Enviar JSON comotext/html
fará com que o navegador o renderize como HTML, que pode ser um vetor XSS.Parece que isso precisa ser feito na camada do servidor, pois o WPSC não fornece os ganchos necessários.
Foi assim que eu fiz. É semelhante à abordagem de Liang, mas não requer modificação direta do plug-in e possui um padrão de regex mais preciso.
Se você estiver usando a v2 da API REST, use em
REST_REQUEST
vez deJSON_REQUEST
.Seria bom assinar os itens 22 e 79 , caso algo mude no WP Super Cache.
fonte
XMLHttpRequest cannot load http://api.mywebsite.com/wp-json/wp/v2/posts. Origin http://mywebsite.com is not allowed by Access-Control-Allow-Origin.
Como posso corrigi-lo?Access-Control-Allow-Origin
cabeçalho para permitir a solicitação de origem cruzada. Eu estou supondo que as páginas em cache não estão produzindo esse cabeçalho.Eu também encontrei esse problema. Eu escrevi um pouco do meu código para ser API. Quando o tipo de resposta era XML, o cache funcionava. Mas quando o tipo de resposta foi json, não funcionou.
Levo algumas horas para corrigir esse bug.
Isso é trabalho para mim.
Atualize seu código como minhas alterações.
Trabalha para mim agora.
fonte
wp_cache_eof_tags
filtro em vez de modificar o plugin diretamente.