使用插件更改CSS

时间:2020-07-28 作者:mennobrein

我正在尝试制作一个插件来更改CSS文件。我的客户希望每个季节都改变颜色,我们希望做到万无一失,这样他们就不会破坏任何东西。

我已经创建了选项页面,但似乎无法使实际功能正常工作。

<?php
class SeizoensKleuren {
    private $seizoens_kleuren_options;

    public function __construct() {
        add_action( \'admin_menu\', array( $this, \'seizoens_kleuren_add_plugin_page\' ) );
        add_action( \'admin_init\', array( $this, \'seizoens_kleuren_page_init\' ) );
    }

    public function seizoens_kleuren_add_plugin_page() {
        add_menu_page(
            \'Seizoens kleuren\', // page_title
            \'Seizoens kleuren\', // menu_title
            \'manage_options\', // capability
            \'seizoens-kleuren\', // menu_slug
            array( $this, \'seizoens_kleuren_create_admin_page\' ), // function
            \'dashicons-admin-appearance\', // icon_url
            81 // position
        );
    }

    public function seizoens_kleuren_create_admin_page() {
        $this->seizoens_kleuren_options = get_option( \'seizoens_kleuren_option_name\' ); ?>

        <div class="wrap">
            <h2>Seizoens kleuren</h2>
            <p>Verander hier de kleuren van de site n.a.v. het seizoen!</p>
            <?php settings_errors(); ?>

            <form method="post" action="options.php">
                <?php
                    settings_fields( \'seizoens_kleuren_option_group\' );
                    do_settings_sections( \'seizoens-kleuren-admin\' );
                    submit_button();
                ?>
            </form>
        </div>
    <?php }

    public function seizoens_kleuren_page_init() {
        register_setting(
            \'seizoens_kleuren_option_group\', // option_group
            \'seizoens_kleuren_option_name\', // option_name
            array( $this, \'seizoens_kleuren_sanitize\' ) // sanitize_callback
        );

        add_settings_section(
            \'seizoens_kleuren_setting_section\', // id
            \'Settings\', // title
            array( $this, \'seizoens_kleuren_section_info\' ), // callback
            \'seizoens-kleuren-admin\' // page
        );

        add_settings_field(
            \'seizoen_0\', // id
            \'Seizoen:\', // title
            array( $this, \'seizoen_0_callback\' ), // callback
            \'seizoens-kleuren-admin\', // page
            \'seizoens_kleuren_setting_section\' // section
        );
    }

    public function seizoens_kleuren_sanitize($input) {
        $sanitary_values = array();
        if ( isset( $input[\'seizoen_0\'] ) ) {
            $sanitary_values[\'seizoen_0\'] = $input[\'seizoen_0\'];
        }

        return $sanitary_values;
    }

    public function seizoens_kleuren_section_info() {
        
    }

    public function seizoen_0_callback() {
        ?> <select name="seizoens_kleuren_option_name[seizoen_0]" id="seizoen_0">
            <?php $selected = (isset( $this->seizoens_kleuren_options[\'seizoen_0\'] ) && $this->seizoens_kleuren_options[\'seizoen_0\'] === \'lente\') ? \'selected\' : \'\' ; ?>
            <option value="lente" <?php echo $selected; ?>>Lente</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options[\'seizoen_0\'] ) && $this->seizoens_kleuren_options[\'seizoen_0\'] === \'zomer\') ? \'selected\' : \'\' ; ?>
            <option value="zomer" <?php echo $selected; ?>>Zomer</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options[\'seizoen_0\'] ) && $this->seizoens_kleuren_options[\'seizoen_0\'] === \'herfst\') ? \'selected\' : \'\' ; ?>
            <option value="herfst" <?php echo $selected; ?>>Herfst</option>
            <?php $selected = (isset( $this->seizoens_kleuren_options[\'seizoen_0\'] ) && $this->seizoens_kleuren_options[\'seizoen_0\'] === \'winter\') ? \'selected\' : \'\' ; ?>
            <option value="winter" <?php echo $selected; ?>>Winter</option>
        </select> <?php
    }

}
if ( is_admin() )
    $seizoens_kleuren = new SeizoensKleuren();

/* 
 * Retrieve this value with:
 * $seizoens_kleuren_options = get_option( \'seizoens_kleuren_option_name\' ); // Array of All Options
 * $seizoen_0 = $seizoens_kleuren_options[\'seizoen_0\']; // Seizoen:
 */

function seizoenplugin_enqueue_styles() 
{
    // Get the user\'s stylesheet choice from the options, default to "lente"
    $seizoens_kleuren_options = get_option( \'lente\');

    // Conditionally load the appropriate stylesheet
    if( $seizoens_kleuren_options == \'lente\' ) {
        wp_enqueue_style( \'seizoenplugin-lente\', plugins_url( \'/css/lente.css\', __FILE__ ) );
    } elseif( $seizoens_kleuren_options == \'zomer\') {
        wp_enqueue_style( \'seizoenplugin-zomer\', plugins_url( \'/css/zomer.css\', __FILE__ ) );
    } elseif( $seizoens_kleuren_options == \'herfst\') {
      wp_enqueue_style( \'seizoenplugin-herfst\', plugins_url( \'/css/herfst.css\', __FILE__ ) );
    } elseif( $seizoens_kleuren_options == \'winter\') {
    wp_enqueue_style( \'seizoenplugin-winter\', plugins_url( \'/css/winter.css\', __FILE__ ) );
  }
}

add_action(\'admin_enqueue_scripts\', \'seizoenplugin_enqueue_styles\' );

  
  ?>
任何帮助都将不胜感激:)。干杯

1 个回复
SO网友:Jacob Peattie

您使用了错误的钩子来排列您的样式:

add_action(\'admin_enqueue_scripts\', \'seizoenplugin_enqueue_styles\' );
顾名思义,admin_enqueue_scripts 用于在管理中对脚本和样式排队。在前端使用脚本排队wp_enqueue_scripts:

add_action(\'wp_enqueue_scripts\', \'seizoenplugin_enqueue_styles\' );

相关推荐

在带有css或php更改的MP3-jPlayer音频播放器上将“已用时间”更改为“剩余时间”

我正在尝试将我网站上的音频播放器更改为显示;剩余时间“;而不是;已用时间;。我已经设法用CSS或php更改进行了我想要的大部分更改,但我完全被这一更改所困扰,甚至不知道这是否可行。下面的屏幕截图显示了播放器启动时突出显示的文本。对于实际玩家,请转到https://audioscapist.net/有人能给我指出正确的方向或建议解决方法吗干杯。编辑:在mozboz的帮助和大量(我指的是大量)的试用&;错误我找到了一个解决方案。在尝试将remainingDuration添加为新变量失败后,我最终在mp3