post_id sempre errado no plugin

4

Estou tentando fazer com que dois plug-ins funcionem juntos, onde um deles coloca uma tag em volta de cada título com uma função de filtro. Eu quero que ele exclua posts de outro plugin que tenha custom post_type (ai1ec_event). Mas não consigo obter o tipo de postagem se o ID estiver errado.

add_filter('the_title', 'mealingua_title_filter', 10);
function mealingua_title_filter($title) {
   $post_id = get_the_ID();
   #some stuff
   if (is_front_page() OR is_single() OR is_page()) {
        return '<span class="mealingua_title_container_' . $post_id . ' mealingua_title_container">' . $title . '</span>';
    } else {
        return $title;
    }
 }

Mas o post_id está sempre errado em alguns lugares. Um é o nav_menu no topo. O outro é o plugin que eu quero consertar. Lá o id é sempre o do último post do site. Eu tentei o seguinte para alternativas sem sucesso:

global $post;
$post_id= $post->ID;
global $wp_query;
$post_id = $wp_query->post->ID;

Como posso trabalhar com isso? O que eu posso fazer? Eu estou disposto a mexer com o código de qualquer um dos plugins, mas apesar de eu conhecer PHP eu não tenho experiência com a codificação do plugin wordpress. Obrigado por qualquer ajuda.

    
por blues 20.08.2012 / 13:36

2 respostas

0

Você não pode usar get_the_ID() quando não estiver no loop (por exemplo, nos menus nav). Felizmente, o filtro the_title vem com o ID do post em um argumento extra.

Altere seu código para isso, para que funcione em todos os lugares:

function mealingua_title_filter($title, $post_id) {

  #some stuff
  if (is_front_page() OR is_single() OR is_page()) {
    return '<span class="mealingua_title_container_' . $post_id . ' mealingua_title_container">' . $title . '</span>';
  } else {
    return $title;
  }
}

add_filter('the_title', 'mealingua_title_filter', 10, 2);
    
por Jeroen Schmit 12.10.2016 / 14:31
0

Por que você não recebe o ID do permalink? Isso é possível. Você pode verificar se a ID da postagem não existe para verificar por permalink URL de análise ou direcionalmente verificar GET se estiver permalink off. WP tem várias maneiras de obter ID.

Você também pode usar esta função:

enlace

    
por Ivijan Stefan Stipić 11.07.2016 / 00:08

Tags