Obter URL atual (permalink) sem / page / {pagenum} /

Como obter URL atual (pode ser uma página inicial, um arquivo, arquivo de postagem, arquivo de categoria, etc.), mas sempre sem o /page/{pagenum}/ parte se estiver presente? Então, se o URL real for:

example.com/category/uncategorized/

OU

example.com/category/uncategorized/page/2/

o valor de retorno sempre será

example.com/category/uncategorized/

Solutions Collecting From Web of "Obter URL atual (permalink) sem / page / {pagenum} /"

Você pode obter url atual através do home_url( $wp->request ) Tente abaixo o exemplo

 global $wp; // get current url with query string. $current_url = home_url( $wp->request ); // get the position where '/page.. ' text start. $pos = strpos($current_url , '/page'); // remove string from the specific postion $finalurl = substr($current_url,0,$pos); echo $finalurl; 

Resposta por Govind Kumar funcionou, no entanto, ele só retornou o URL se / page / {pagenum} / estava presente no URL e não devolvesse nada se não. Eu precisava de uma solução universal que sempre retornaria o URL base sem paginação, então modifiquei um pouco o código de Govind e envolvi uma function:

 function get_nopaging_url() { global $wp; $current_url = home_url( $wp->request ); $position = strpos( $current_url , '/page' ); $nopaging_url = ( $position ) ? substr( $current_url, 0, $position ) : $current_url; return trailingslashit( $nopaging_url ); } echo get_nopaging_url(); 

Agora, ele sempre retorna o URL correto.

( Isso é útil se você precisar implementar algum tipo de filtro de postagem que adicione um parâmetro para filtrar mensagens por, digamos, um meta arquivado. Portanto, mesmo se um usuário definir o parâmetro de filtro na página X, os novos resultados filtrados serão sempre Comece a partir do URL de base, não da página X e joga 404 se houver menos postagens filtradas. )

Meus detalhes eram muito semelhantes aos de Ihor Vorotnov, exceto que eu tinha mais de um parâmetro. Então, a partir de sua resposta, modifiquei o código para usar uma expressão regular:

 function get_nopaging_url() { $current_url = $_SERVER[REQUEST_URI]; $pattern = '/page\\/[0-9]+\\//i'; $nopaging_url = preg_replace($pattern, '', $current_url); return $nopaging_url; } 

Embora esta questão já tenha sido respondida aqui (não aceita), este snippet deve fazer o truque: home_url(add_query_arg(NULL, NULL)); .