首页 > 解决方案 > Wordpress:仅在使用短代码的页面上加载 CSS 和 JS

问题描述

我只想在某个页面中使用短代码(embedyt)时才显示 css 和 javascript 文件。

我不是 php 专家,但我需要修改我的 wordpress 网站中的一些内容。

这是css和js文件:

<link rel='stylesheet' id='__EPYT__style-css'  href='***/wp-content/plugins/youtube-embed-plus/styles/ytprefs.min.css?ver=13.4.1.2' type='text/css' media='all' />
<script type='text/javascript' defer src='***/wp-content/plugins/youtube-embed-plus/scripts/ytprefs.min.js?ver=13.4.1.2' id='__ytprefs__-js'></script>

这是我在function.php(子)中插入但不起作用的代码

function youtubeembed_css_js() {
    global $post;
    
    if( is_a( $post, 'WP_Post' ) && has_shortcode( $post->post_content, 'embedyt') ) {
        wp_enqueue_script('youtube-embed-plus');
     wp_enqueue_style('youtube-embed-plus');

    }else{
        wp_dequeue_script( 'youtube-embed-plus' );
        wp_dequeue_style( 'youtube-embed-plus' );
    }
}
add_action( 'wp_enqueue_scripts', 'youtubeembed_css_js', 100);

我该如何解决?感谢您的帮助

标签: javascriptphpcsswordpress

解决方案


谢谢你的帮助。但我很新,所以我一步一步地尝试

我做错了什么,因为我仍然在 html 中看到该文件。

我用这个代码注册

add_action('init', 'register_style');
function register_style() {
    wp_register_style( 'youtube-embed-plus', plugins_url('/styles/ytprefs.min.css', __FILE__));
    wp_register_script( 'youtube-embed-plus', plugins_url('/scripts/ytprefs.min.js', __FILE__));
}

推荐阅读