0

私の現在のPHPコードは機能しており、「テーマオプション」ページ(WP APIの外観メニューの下にあります)を希望どおりにスタイリングしていますが...

CSS スタイルシートは、WP ダッシュボードの他のすべてのメニュー (「設定 > 一般オプション」に影響するなど) ページにも適用されています。スタイルシートを自分の「テーマ オプション」ページだけに適用し、他を改ざんしないようにするにはどうすればよいですか?

私のスタイルシートの名前は「theme-options.css」で、「include」> include/theme-options.css というフォルダー内にあります。以下のコードは、「theme-options.php」ページ内に配置されています。

<?php
// Add our CSS Styling
add_action( 'admin_menu', 'admin_enqueue_scripts' );
function admin_enqueue_scripts() {
    wp_enqueue_style( 'theme-options', get_template_directory_uri() . '/include/theme-options.css' );
    wp_enqueue_script( 'theme-options', get_template_directory_uri() . '/include/theme-options.js' );   
}   
4

2 に答える 2

4

CSSファイルとJSファイルをページの構成要素とは別に配置していました(その関数のすぐ上)。コードはページビルド関数内にあり、目的の結果が得られています。

以前:

...
// Add our CSS Styling
function theme_admin_enqueue_scripts( $hook_suffix ) {
    wp_enqueue_style( 'theme-options', get_template_directory_uri() . '/include/theme-options.css', false, '1.0' );
    wp_enqueue_script( 'theme-options', get_template_directory_uri() . '/include/theme-options.js', array( 'jquery' ), '1.0' );     

// Build our Page
function build_options_page() {

ob_start(); ?>
    <div class="wrap">
        <?php screen_icon();?>

        <h2>Theme Options</h2>

        <form method="post" action="options.php" enctype="multipart/form-data">

        ...
        ...

解決:

// Build our Page
function build_options_page() {

// Add our CSS Styling
wp_enqueue_style( 'theme-options', get_template_directory_uri() . '/include/theme-options.css' );
wp_enqueue_script( 'theme-options', get_template_directory_uri() . '/include/theme-options.js' ); 

ob_start(); ?>
    <div class="wrap">
        <?php screen_icon();?>

        <h2>Theme Options</h2>

        <form method="post" action="options.php" enctype="multipart/form-data">

        ...
        ...
于 2012-06-03T16:40:31.770 に答える
1

前にページをチェックして、現在のページが特別なページである場合にのみ、css ファイルを追加できます。

if (is_page('Theme Options')) { // check post_title, post_name or ID here
    add_action( 'admin_menu', 'admin_enqueue_scripts' );
}

===更新===

関数をチェックインする方が良いかもしれません:

<?php
// Add our CSS Styling
add_action( 'admin_menu', 'admin_enqueue_scripts' );
function admin_enqueue_scripts() {
    if (is_page('Theme Options')) { // check post_title, post_name or ID here
        wp_enqueue_style( 'theme-options', get_template_directory_uri() . '/include/theme-options.css' );
    }
    wp_enqueue_script( 'theme-options', get_template_directory_uri() . '/include/theme-options.js' );   
}  
于 2012-06-03T15:50:03.607 に答える