Bug em função private files

Estava tendo um problema com as imagens privadas, e fui até o código para tentar resolver, encontrei a função template_redirect, e percebi que a linha de verificação $item->can_read() está retornando vazio, não identificando a minha permissão. O que posso fazer?

Boa tarde @Barbhara_Resende, seja bem vinda
A função $item->can_read() deve retornar um booleano (true ou false) de acordo com o usuário que esteja logado.
Você consegue acessar esse item pela parte administrativa do Tainacan?

Então esse item não está retornando nada, vazio.

dependendo de como você tá visualizando o retorno, o “false” pode está sendo exibido como uma string vazia, você consegue executar alguns scripts em php para fazermos alguns teste:

<?php
require_once("./wp-load.php");

wp_logout(); //logout do usuario atual;
wp_set_current_user(<ID_DO_USUARIO>); //configurar usuário atual pelo ID do usuário.
$item_id = <ID_DO_ITEM>;

$user = wp_get_current_user();
echo "\n\n\n------------->\nUSER NAME:" . $user->user_login . "\n";

echo "\n\n@@@@@@@@@@@@@@@\nread_post $item_id: ";
$read_post = current_user_can('read_post', $item_id);
echo $read_post ? "Yes\n" :  "No\n";

echo "\n\n@@@@@@@@@@@@@@@\nitem::can_read $item_id: ";
$item = new \Tainacan\Entities\Item( $item_id ); 
$item_can_read = $item->can_read();
echo $item_can_read ? "Yes\n" :  "No\n";

echo "\n\n<-------------\n\n\n";

altere:

  • <ID_DO_USUARIO> para o ID do usuário que está querendo visualizar o item.
  • <ID_DO_ITEM> para o ID do item que deseja visualizar (pode ser encontrado na URL ao editar o item)

esse script deve imprimir dois “yes” caso o usuário tenha permissão ou não para acessar o item.

Não funcionou

Mudando para o caminho certo ele me retorna este erro

Eu tenho esse mesmo problema:
No WordPress.com, todas as imagens de itens ocultos ficam borradas.
Em uma outra instalação que tenho fora, as imagens dos itens ocultos aparecem normalmente.

Não sei se ajuda

1 curtida

você criou um arquivo separado para testar? o erro tá indicando o arquivo “class-tainacan-private-files.php”.

sugiro você criar um arquivo “.php” separado na raiz da instalação e tentar acessar ele.