notice: 2025/12/08 10:37 時点で、3.4.6が公開されたので、アップデートにより、エフェクトについても正常動作するようになっております。
先日のwordpress6.9のアップデートに伴い、ghostkit, ghostkit proのプラグインをお使いの方にエラーが出てサイト表示が止まっていた件ですが、3.4.5へのアップデートでエラーは解消したものの、pro版のエフェクト機能を使っているものについて、内容がいっこうに表示されない、というご報告を多々いただいております。
取り急ぎ、テーマのfunctions.phpに以下をお書きいただくことで、ghostkit proのeffect機能を無効化することができますのでご案内いたします。
/**
* GhostKit Pro Effects をフロント出力時だけ無効化
* (DBの設定は残したままなので、パッチが出たら削除)
*/
add_filter( 'the_content', 'bcool_disable_ghostkit_effects_output', 20 );
function bcool_disable_ghostkit_effects_output( $content ) {
// 管理画面やRESTには触らない
if ( is_admin() ) {
return $content;
}
// data-ghostkit-* / data-gkt-* 属性を全部削除
$content = preg_replace(
'/\sdata-(ghostkit|gkt)-[a-zA-Z0-9_-]+="[^"]*"/',
'',
$content
);
// class="" から effects 系クラスだけ抜く
$content = preg_replace_callback(
'/class="([^"]*)"/',
function ( $m ) {
$classes = preg_split( '/\s+/', trim( $m[1] ) );
$remove_prefixes = array(
'ghostkit-effect',
'ghostkit-effects',
'ghostkit-reveal',
'ghostkit-scroll',
'ghostkit-loop',
'ghostkit-mouse',
'gkt-effect',
'gkt-effects',
);
$filtered = array();
foreach ( $classes as $class ) {
$remove = false;
foreach ( $remove_prefixes as $prefix ) {
if ( strpos( $class, $prefix ) === 0 ) {
$remove = true;
break;
}
}
if ( ! $remove ) {
$filtered[] = $class;
}
}
if ( empty( $filtered ) ) {
// 全部消えたら class="" ごと削除
return '';
}
return 'class="' . implode( ' ', $filtered ) . '"';
},
$content
);
return $content;
}