Pregunta

I need to use Paper.js (http://paperjs.org/), and specifically one of their examples (http://paperjs.org/examples/smoothing/) on a WordPress website.

Usually, scripts are enqued to WP with a PHP function that adds scripts of type text/javascript (https://developer.wordpress.org/reference/functions/wp_enqueue_script/) and should be fine for the Paper.js library itself.

But... The script utilizing Paper.js should be of type text/paperscript (http://paperjs.org/tutorials/getting-started/working-with-paper-js/), and the only solution I could come up with is echo both script tags to my (child theme to a Genesis Framework) header.php file:

<script src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.11.5/paper-full.min.js" integrity="sha256-qZnxjtwxg51juOcYyANvBWwFoahMFNB2GSkGI5LGmW0=" crossorigin="anonymous"></script>
<script type='text/paperscript' canvas='smoothCanvas' href='../js/smoothing.js'></script>

Is there any other solution? I tried to search some tutorials for Paper.js on Wordpress, but couldn't find anything.

¿Fue útil?

Solución

I'm not sure if this will solve your problem, but you can use the script_loader_tag filter to change the type text/javascript to text/paperscript

add_filter( 'script_loader_tag', function( $tag, $handle, $src ) {
  if( 'your-script-handle' === $handle ) {
    $tag = str_replace( 'text/javascript', 'text/paperscript ', $tag );
  }
  return $tag;
}, 10, 3 );

Otros consejos

Or in case there's no text/javascript :

add_filter( 'script_loader_tag', function( $tag, $handle, $src ) {      
      if( 'script_handle' === $handle ) {
          $tag = str_replace( '<script', '<script type="text/paperscript" ', $tag );
      }
      return $tag;
}, 10, 3 );
Licenciado bajo: CC-BY-SA con atribución
scroll top