Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edumar

Remover Older e Newer posts

Recommended Posts

Pessoal,

Estou há dois dias fazendo modificações no meu wordpress, e consegui resolver muita coisa pesquisando pela internet.
Mas, estou com dois problemas aqui que não consigo solucioná-los de jeito nenhum. Encontrei algumas soluções muito antigas mas que não funcionam mais.

Minha página inicial é estática, e uso o tema Twenty Eleven. Uso o blog em idioma inglês.

Minha questões são:
- Quando faço uma busca em branco (widget Search), o wordpress me retorna um post com links indicando "Older" e "Newer" posts.
Eu queria que ele não retornasse nada, desse algo como "Nothing Found" (que aparece quando nada encontra) ou simplesmente nada acontecesse.
O que eu não quero é ele retornando qualquer resultado quando a busca for em branco ou com espaços.
- Outro ponto: eu não queria que ele jamais desse as opções de link para "Older posts" e "Newer posts". Meu objetivo é que ele faça a busca e apresente um único resultado (haverá sempre um único para o que estou fazendo), sem opções de navegar por outros posts.

Alguém pode me ajudar? Já estou desanimado de procurar e de testar soluções que não funcionaram.

Para acabar com os links older e newer, eu apaguei as seguintes linhas do arquivo search.php:

<?php twentyeleven_content_nav( 'nav-above' ); ?>
<?php twentyeleven_content_nav( 'nav-below' ); ?>

Não entendo nada de programação, arrisquei fazer isso depois de ler algo sobre esse tal de "nav".
Funcionou ! Sumiram os links.... mas.....Está certo isso que fiz?

Achei um código num site americano para ser colocado no functions.php.
Ele teria a função de fazer com que uma busca em branco, em vez de fazer o wordpress ir para a página inicial, ele iria para uma página com resultados de busca, se foi isso que eu entendi.
Curiosamente, no meu caso, ele faz o que eu queria (mas não é a idéia desta função), retornando nenhum resultado:

function change_blank_search( $query_variables ) {
if(isset( $_GET['s'] )&∅( $_GET['s'])) {
$query_variables['s'] = " ";
}
return $query_variables;
}
add_filter( 'request', 'change_blank_search' );
É isso mesmo ou provoquei outro erro que não percebi? Qual seria o formato correto desta função para me retornar corretamente "nenhum resultado encontrado"? Ou deixo assim mesmo já que está funcionando correndo o risco de ter criado algum outro problema que não percebi ainda?
Achei esta solução aqui: https://www.webhostinghero.com/fix-the-empty-search-homepage-problem-wordpress/
Desculpem insistir nisso, mas não entendo nada destes códigos.
Será que isso aconteceu comigo porque coloquei este código para fazer buscas somente nos títulos de posts?:
// Search SQL filter for matching against post title only.
function __search_by_title_only( $search, $wp_query )
{
global $wpdb;
if ( empty( $search ) )
return $search; // skip processing - no search term in query
$q = $wp_query->query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';
$search =
$searchand = '';
foreach ( (array) $q['search_terms'] as $term ) {
$term = esc_sql( like_escape( $term ) );
$search .= "{$searchand}($wpdb->posts.post_title REGEXP '[[:<:]]{$term}[[:>:]]')";
$searchand = ' AND ';
}
if ( ! empty( $search ) ) {
$search = " AND ({$search}) ";
if ( ! is_user_logged_in() )
$search .= " AND ($wpdb->posts.post_password = '') ";
}
return $search;
}
add_filter( 'posts_search', '__search_by_title_only', 1000, 2 );

Porém, percebi que se eu digitar * ou *. ou *.* ele também retorna resultados... tá complicado isso... não sei mais o que eu faço.

Agradeço muito toda a ajuda.

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.