Ich muss alle theme (sowohl child als auch parent) css-Stile von einer einzelnen Seite mit functions.php in einem child-Theme entfernen. Folgendes füge ich derzeit zur Datei functions.php des Kindes hinzu
// 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' );
Ich möchte diese PREFIX_remove_scripts - Funktion nur auf eine Seite der Site anwenden. Wie kann ich das am besten erreichen? Oder gibt es einen anderen geeigneten Weg? Vielen Dank im Voraus!
Sie können bedingte Tags verwenden, um auf die bestimmte Seite abzuzielen, auf der Sie die Stile entfernen möchten. Sie können is_page()
verwenden, um eine page page (im Gegensatz zu einem anderen Beitragstyp) als Ziel festzulegen und eine Seiten-ID, einen Slug, einen Titel oder kein Argument an any page zu übergeben.
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' );
}
}
Ich gehe davon aus, dass Sie es bereits sind, aber um genau zu sein, sollten Sie die Funktion aufrufen, mit der die Stile aus einem Aktions-Hook aus der Warteschlange entfernt/aus der Registrierung entfernt werden - in diesem Fall wp_enqueue_scripts
.
Aus den wp_enqueue_scripts
docs :
Trotz des Namens wird es zum Einreihen von Skripten und Stilen verwendet
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 );