Como altero o número de colunas de forma apropriada no tema da criança twentyfourteen?

Estou tentando desativar e reativar um javascript no meu childtheme – do tema twentyfourteen (então as atualizações não afetarão as coisas).

O que eu realmente quero fazer é mudar a largura da coluna de 4 a 3 no rodapé, mas eu não quero mudar /js/functions.js diretamente no tema principal (talvez haja outra / melhor maneira de conseguir isso. Por favor, diga !)

Estou colocando isso em functions.php no tema infantil:

/* 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(); 

Eu quero js deactivos e depois js reactivos, mas reactivatejs não é chamado. O que estou fazendo de errado? O caminho para o novo arquivo js no tema filho está configurado corretamente e existe.

O /js/functions.js Eu quero mudar:

 _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' ) } ); } } ); 

PARA (observe o 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 "Como altero o número de colunas de forma apropriada no tema da criança twentyfourteen?"

Não tenho certeza por que você está usando exit() in your método reactivatejs () `, pois isso interrompe o método antes mesmo de carregar seu script ( espero que isso seja para fins de debugging ).

Eu também penso que é desnecessário criar uma class para isso, uma function de espaguete simples faria perfeitamente. De qualquer forma, se você precisar usar uma class, o construtor da class não é suposto a nenhum trabalho, é suposto que o construtor inicialize a class. Você gostaria de tomar sua ação fora do construtor. Além disso, quando se trata de remover scripts e estilos, você gostaria de desregir e dequeue.

Aqui estão as possíveis soluções:

Fechaduras – não é realmente recomendado, pois não podem ser removidos

 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 ); 

ESPAGUETE NORMAL

 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 ); } 

CLASSE COM AÇÃO FORA

 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 ); } } 

ENTÃO

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

OU

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

CLASSE COM AÇÃO CLASSE INTERNA

 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();