Wie ändere ich die Anzahl der Spalten in einem Vierundzwanzig-Kind-Thema richtig?

Ich versuche, ein Javascript in meinem childtheme – vom vierundzwanzigsten Thema zu deaktivieren und zu reagieren (so werden Aktualisierungen Dinge nicht beeinflussen).

Was ich wirklich tun möchte ist, die Spaltenbreite von 4 auf 3 in der Fußzeile zu ändern, aber ich möchte /js/functions.js nicht direkt im Hauptthema ändern (vielleicht gibt es einen anderen / besseren Weg, dies zu erreichen. Bitte sag es !)

Ich setze das in functions.php im Child-Theme:

/* activate and decative js class */ class aadjs { public function __construct() { add_action( 'wp_enqueue_scripts', array( $this, 'deactivejs'), 100 ); } public function deactivejs() { wp_dequeue_script( 'twentyfourteen-script' ); add_action( 'wp_enqueue_scripts', array( $this, 'reactivatejs'), 100); } //Why isn't this function executed? public function reactivatejs() { echo get_stylesheet_directory_uri() . '/js/functions.js'; exit; wp_enqueue_script( 'twentyfourteen-script', get_stylesheet_directory_uri() . '/js/functions.js', array( 'jquery' ), '20140616', true ); } } $x = new aadjs(); 

Ich möchte js deaktivieren und dann reaktive js aber reactivatejs wird nicht aufgerufen. Was mache ich falsch? Der Pfad zur neuen js-Datei im Child-Theme ist richtig eingestellt und existiert auch.

Die /js/functions.js möchte ich ändern:

 _window.load( function() { // Arrange footer widgets vertically. if ( $.isFunction( $.fn.masonry ) ) { $( '#footer-sidebar' ).masonry( { itemSelector: '.widget', columnWidth: function( containerWidth ) { return containerWidth / 4; }, gutterWidth: 0, isResizable: true, isRTL: $( 'body' ).is( '.rtl' ) } ); } } ); 

TO (merke die 3)

 _window.load( function() { // Arrange footer widgets vertically. if ( $.isFunction( $.fn.masonry ) ) { $( '#footer-sidebar' ).masonry( { itemSelector: '.widget', columnWidth: function( containerWidth ) { return containerWidth / 3; }, gutterWidth: 0, isResizable: true, isRTL: $( 'body' ).is( '.rtl' ) } ); } } ); 

Solutions Collecting From Web of "Wie ändere ich die Anzahl der Spalten in einem Vierundzwanzig-Kind-Thema richtig?"

Ich bin nicht sicher, warum Sie exit() in your reactivatejs () `Methode verwenden, da dies die Methode bricht, bevor sie sogar Ihr Skript lädt ( hoffentlich ist dies für Debugging-Zwecke ).

Ich denke auch, dass es unnötig ist, eine class zu erstellen, eine einfache Spaghetti-function würde perfekt funktionieren. Wie auch immer, wenn Sie eine class verwenden müssen, ist der Konstruktor der class für keine Arbeit gedacht, der Konstruktor soll die class initialisieren. Sie möchten Ihre Aktion außerhalb des Konstruktors ausführen. Wenn Sie Skripte und Stile entfernen möchten, sollten Sie sich ebenfalls abmelden und aus der Warteschlange entfernen.

Hier sind mögliche Lösungen:

SCHLIESSUNGEN – nicht wirklich empfohlen, da sie nicht entfernt werden können

 add_action( 'wp_enqueue_scripts', function () { // Remove your script wp_dequeue_script( 'twentyfourteen-script' ); wp_deregister_script( 'twentyfourteen-script' ); // Add new script wp_enqueue_script( 'lets-be-unique-here', get_stylesheet_directory_uri() . '/js/functions.js', ['jquery'], '20140616', true ); }, 100 ); 

NORMALE SPAGHETTI

 add_action( 'wp_enqueue_scripts', 'addjs', 100 ); function addjs() { // Remove your script wp_dequeue_script( 'twentyfourteen-script' ); wp_deregister_script( 'twentyfourteen-script' ); // Add new script wp_enqueue_script( 'lets-be-unique-here', get_stylesheet_directory_uri() . '/js/functions.js', ['jquery'], '20140616', true ); } 

KLASSE MIT AKTION AUSSEN

 class AddJS { public function addjs () { // Remove your script wp_dequeue_script( 'twentyfourteen-script' ); wp_deregister_script( 'twentyfourteen-script' ); // Add new script wp_enqueue_script( 'lets-be-unique-here', get_stylesheet_directory_uri() . '/js/functions.js', ['jquery'], '20140616', true ); } } 

DANN

 add_action( 'wp_enqueue_scripts', ['AddJS','addjs'], 100 ); 

ODER

 $addjs = new AddJS(); add_action( 'wp_enqueue_scripts', [$addjs,'addjs'], 100 ); 

KLASSE MIT AKTION INNENKLASSE

 class AddJS { public function addAction () { add_action( 'wp_enqueue_scripts', [$this,'addjs'], 100 ); } public function addjs () { // Remove your script wp_dequeue_script( 'twentyfourteen-script' ); wp_deregister_script( 'twentyfourteen-script' ); // Add new script wp_enqueue_script( 'lets-be-unique-here', get_stylesheet_directory_uri() . '/js/functions.js', ['jquery'], '20140616', true ); } } $addjs = new AddJS(); $addjs->addjs();