如何在仪表板中设置选项页面的样式?

时间:2015-08-24 作者:nisr

使用子主题,将自定义选项页面添加到仪表板,管理员可以在其中保存有关站点的详细信息。在子主题中使用此代码functions.php 要创建选项页,请执行以下操作:

add_action( \'admin_menu\', \'jrl_add_admin_menu\' );
function jrl_add_admin_menu()
{
    add_menu_page(\'Journal Options\', \'Journal Options\', \'manage_options\', \'functions\',\'journal_custom_options\');
}
function journal_custom_options()
{
?>
    <div class="jrl-wrap">
    <div class="icon32" id="icon-tools"> <br /> </div>
        <h2>Site Options</h2>
        <p>Add Site Informations.</p>
        <hr>
        <form method="post" action="options.php" enctype="multipart/form-data">
            <?php wp_nonce_field(\'update-options\') ?>
            <p><strong>site Title:</strong>
                <input type="text" name="jrlname" size="75" value="<?php echo get_option(\'jrlname\'); ?>" />
            </p>
            <p><strong>site Title Abbreviation:</strong>
                <input type="text" name="abr" size="25" value="<?php echo get_option(\'abr\'); ?>" />
            </p><hr>
            <p><strong>site-code:</strong>
                <input type="text" name="scode" size="45" value="<?php echo get_option(\'eissn\'); ?>" />
            </p>
            <p><strong>admin-code:</strong>
                <input type="text" name="acode" size="45" value="<?php echo get_option(\'pissn\'); ?>" />
            </p><hr>
            <p><strong>manager:</strong><br />
                <input type="text" name="chef" size="45" value="<?php echo get_option(\'chef\'); ?>" />
            </p><hr>
            <p class="submit"><input type="submit" name="Submit" value="Save Options" class="button-primary" /></p>
            <input type="hidden" name="action" value="update" />
            <input type="hidden" name="page_options" value="jrlname,scode,acode,chef,abr" />
        </form>
    </div>
<?php
}
这段代码创建了选项页面,并且工作正常。但是,当我尝试为这个页面添加样式时,什么都没有发生。我创建了一个样式表文件“site-options.css“在子主题的functions目录中,使用以下代码:

#jrl-wrap {
  width: 700px;
  padding: 3em;
  background: white;
  background: -moz-linear-gradient(top, #f4f2f2, white 20%, #f4f2f2 80%, white);
  background: -webkit-gradient(linear, left top, left bottom, from(#f4f2f2), color-stop(.2, white), color-stop(.8, #f4f2f2), to(white));
  border-top: 1px solid white;
  color:red;
  }
#jrl-wrap h2 {
font-style:normal;
font-size:28px;
margin-bottom:20px;
font-style:italic;
}
#jrl-wrap #icon-tools {
  position: relative;  .
  top: -10px;
  }
#jrl-wrap input, #jrl-wrap textarea {
  padding: .7em;.
  }
我试图通过将此代码添加到子主题来调用此文件functions.php

// Add stylesheetadd_action(\'admin_head\', \'admin_register_head\');
    function admin_register_head() {
       $url = get_bloginfo(\'template_directory\') . \'/functions/site-options.css\';  echo "<link rel=\'stylesheet\' href=\'$url\' />n";
}
但什么都没有发生&;选项页仍然没有任何样式。有什么建议可以解决这个问题吗?

1 个回复
最合适的回答,由SO网友:Marek 整理而成

您可以简单地将这些CSS添加到管理头部分,这是一个快速而简单的解决方案。

function jrl_styles() {
    ?><style type="text/css">
    #jrl-wrap {
      width: 700px;
      padding: 3em;
      /* ... */
    }
    </style><?php
}
add_action(\'admin_head\', \'jrl_styles\');
或者,您可以按如下方式设置CSS文件:

function load_custom_wp_admin_style() {
    wp_register_style( \'custom_wp_admin_css\', get_stylesheet_directory_uri() . \'/functions/site-options.css\', false, \'1.0.0\' );
    wp_enqueue_style( \'custom_wp_admin_css\' );
}
add_action( \'admin_enqueue_scripts\', \'load_custom_wp_admin_style\' );

Documentation page.

这两个选项都会将这些CSS代码(或文件)添加到每个管理页面,因此请在前面添加CSS定义,以避免与WordPress CSS发生冲突。您的CSS代码看起来不错。

Edit: 已更改get_template_directory_uri() (始终返回父主题文件夹)到get_stylesheet_directory_uri() (返回子主题文件夹)。

结束

相关推荐

我应该在single.php文件中使用循环吗?

我阅读了许多教程,检查了许多高级/免费主题的源代码,其中大多数都在单曲中使用循环。php文件。单曲。php文件只显示一篇文章,所以我认为the_post() 已经足够了,但没有必要。这些主题(二一五、二一二等)有什么原因吗在单曲中使用循环。php文件?