Aplicar categoria de verificação de filtro wordpress

Estou tentando aplicar o gancho de filtro wordpress get_the_expert. Minha intenção é aplicar filtro somente quando a slug categoria for “MY-CATEGORY-SLUG”. Como posso verificar a bolha da categoria dentro da function de gancho do filtro.

obrigado

Solutions Collecting From Web of "Aplicar categoria de verificação de filtro wordpress"

Obrigado pela resposta David. Encontrei a solução. Eu adicionei o seguinte código em functions.php

add_filter('get_the_excerpt', 'process_excerpt'); function process_excerpt($param) { global $post; if(in_category('MY-CATEGORY-SLUG',$post)) return 'adding some data'.$param; else return $param; } 

Isso corrigiu meu problema.

Como você está dentro do loop e você deseja aplicar o filtro somente quando a postagem atual é atribuída a categoria específica, você poderia fazer algo assim no loop:

 if( have_posts() ) { while( have_posts() ) { the_post(); if( in_category( 'MY-CATEGORY-SLUG', get_the_ID() ) ) { //The post is assigned to "MY-CATEGORY-SLUG", add the filter add_filter('get_the_excerpt', 'filter_the_excerpt'); } else { //The post is NOT assigned to "MY-CATEGORY-SLUG", remove the filter remove_filter('get_the_excerpt', 'filter_the_excerpt'); } } } 

Mas acho que você deve aplicar o filtro sempre e verificar a categoria dentro do filtro, para que você possa evitar a verificação no loop para manter o loop e as placas apagadas.

 add_filter('get_the_excerpt', 'filter_the_excerpt'); function my_filter_the_excerpt( $excerpt ){ if( in_category( 'MY-CATEGORY-SLUG', get_the_ID() ) ) { //The post is assigned to "MY-CATEGORY-SLUG" //Do whatever you want } else { //The post is NOT assigned to "MY-CATEGORY-SLUG" //Do whatever you want } } 

Se eu entendi sua pergunta corretamente, este código abaixo deve ajudá-lo (coloque-o em functions.php ).

 function my_filter_the_excerpt($excerpt){ global $post; /** Return the excerpt only if the post is in the category 'MY-CATEGORY-SLUG' */ return (in_category('MY-CATEGORY-SLUG', $post) ? $excerpt : ''; } 

Apenas no caso de você não ter certeza de onde este código deve ir, eu recomendaria adicionar o filtro imediatamente antes do início do seu Loop e depois removê-lo no final –

 add_filter('get_the_excerpt', 'my_filter_the_excerpt'); if(have_posts()) : while(have_posts()) : the_post(); { your code } endwhile; endif; remove_filter('get_the_excerpt', 'my_filter_the_excerpt'); 

Para obter mais informações, eu recomendaria ter uma olhada nos seguintes documentos –

  • O filtro get_the_excerpt
  • A function wp_get_post_categories()