子テーマでfunctions.phpを使用して、すべてのテーマ (子と親の両方) cssスタイルを単一のページから削除する必要があります。これが私が現在子供のfunctions.phpに追加しているものです。
// import parent and child theme css
function theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array($parent_style));}
// remove the parent & style css
function PREFIX_remove_scripts() {
wp_dequeue_style( 'parent-style' );
wp_dequeue_style( 'child-style' );
wp_dequeue_style( 'parent-style-css' );
wp_deregister_style( 'parent-style' );
wp_deregister_style( 'child-style' );
wp_deregister_style( 'parent-style-css' );
この PREFIX_remove_scripts 関数をサイト上の1ページだけに適用したい。どうすればこれを達成できますか。または別の適切な方法はありますか?事前に感謝します。
コンディショナルタグ を使用して、スタイルを削除する必要のある特定のページをターゲットにすることができます。 is_page()
を使用してpageページをターゲットにし(別の投稿タイプとは対照的に)、ページID、スラッグ、タイトル、または引数なしをtarget anyページに渡すことができます。
function wpse_217881_remove_scripts() {
// Check for the page you want to target
if ( is_page( 'About Me And Joe' ) ) {
// Remove Styles
wp_dequeue_style( 'parent-style' );
wp_dequeue_style( 'child-style' );
wp_dequeue_style( 'parent-style-css' );
wp_deregister_style( 'parent-style' );
wp_deregister_style( 'child-style' );
wp_deregister_style( 'parent-style-css' );
}
}
私はあなたがすでにいると仮定していますが、明示的に言うと、アクションフックからスタイルをデキュー/登録解除する関数を呼び出すべきです - この例ではwp_enqueue_scripts
。
その名前にもかかわらず、スクリプトとスタイルの両方をキューに入れるために使用されます。
add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts' );
// Optionaly add a priority if needed i.e:
// add_action( 'wp_enqueue_scripts', 'wpse_217881_remove_scripts', 20 );