質問: null) { return 'inserted text ' . $content; } カテゴリページおよびアーカイブページに表示される投稿コンテンツの[tsc]からinserted textが生成されません。カテゴリページとアーカイブページでショートコードを機能させるにはどうすればよいですか。
回答: フィルタが適用される前に、ショートコードは抜粋から削除されます。もっとこのようなことを試してみてください。function tsc_execute_shortcodes_in_excerpts( $text, $raw_text ){ if(empty($raw_text)){ $text = get_the_content(''); $text = apply_filters('the_content', $text); $text = str_replace(']]>', ']]&gt;', $text); $text = strip_tags($text); $excerpt_length = apply_filters('excerpt_length', 55); $excerpt_more = apply_filters('excerpt_more', ' ' . '[...]'); $words = preg_split("/[\n\r\t ]+/", $text, $excerpt_length + 1, preg_split_no_empty); if ( count($words) > $excerpt_length ) { array_pop($words); $text = implode(' ', $words); $text = $text . $excerpt_more; } else { $text = implode(' ', $words); } } return $text; } add_filter( 'wp_trim_excerpt', 'tsc_execute_shortcodes_in_excerpts', 10, 2 ); それが最初にトリミングされているなら、それは基本的にコンテンツでwp_trim_excerpt()を再実行します(ショートコード除去を除く)。ショートコードのみをターゲットにしたい場合は、get_the_content('')の後に次のようなことをすることができます。$text = str_replace( '[tsc', '{tsc', $text ); $text = strip_shortcodes( $text ); $text = str_replace( '{tsc', '[tsc', $text ); それが役立つことを願っています。