Làm cách nào để tôi chỉ tải một kiểu CSS vào khu vực quản trị WordPress?


7

Tôi đang cố tải một tệp CSS cho khu vực bài đăng WordPress của mình, nhưng không gặp may. Tôi đã đọc qua hàm wp_enqueue_style và tìm ra đoạn mã bên dưới, nhưng nó không tải lên được. Có một thẻ hoặc ký tự bị thiếu trong mã của tôi. Tôi có bảng viết tùy chỉnh khi người dùng đăng bài mà tôi muốn tạo kiểu với tệp CSS. Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.

Đây là những gì tôi có trong functions.phptập tin chủ đề của mình :

function mytheme_add_init() {
    $file_dir=get_bloginfo('template_directory');
    wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
    wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
}

Câu trả lời:


6

Chỉ cần nối lại cuộc gọi của bạn vào admin_print_styles, tức là:

add_action( 'admin_print_styles', 'mytheme_add_init' );

Thay phiên, bạn có thể thêm một is_admin()trình bao bọc có điều kiện bên trong cuộc gọi lại của bạn và nối vào wp_enqueue_scripts:

function mytheme_add_init() {
    if ( is_admin() ) {
        $file_dir=get_bloginfo('template_directory');
        wp_enqueue_style("functions", $file_dir."/scripts/custom.css", false, "1.0", "all");
        wp_enqueue_script("rm_script", $file_dir."/scripts/custom.js", false, "1.0");
    }
}
add_action( 'wp_enqueue_scripts', 'mytheme_add_init' );

Nhưng cách tiếp cận tốt nhất tuyệt đối là nối vào trang quản trị của Theme của bạn , thông qua admin_print_styles-appearance_page_{pagename}:

add_action( 'admin_print_styles-appearance_page_{pagename}', 'mytheme_add_init', 11 );

Đây là một móc tùy chỉnh dành riêng cho trang xuất hiện của bạn, như được xác định qua add_theme_page()cuộc gọi của bạn .


7

Câu trả lời muộn: Vì cả hai câu trả lời trước đều chỉ ra những cách cũ, không đầy đủ hoặc phức tạp, đây là phiên bản cập nhật hoạt động theo cách v3 +.

Khác biệt là gì?

Đây là danh sách

  • Điều đầu tiên chúng ta làm là sử dụng admin_enqueue_scriptsmóc. Cái móc này
  • Đối wp_enqueue_style()số cuối cùng là phương tiện được nhắm mục tiêu và nó đã được đặt thành allmặc định. Không cần thêm nó.
  • Chúng tôi sử dụng get_template_directory_uri()chức năng để truy xuất URl cho biểu định kiểu của chúng tôi. Không cần phải kiểm tra giá trị tùy chọn cho template_directoryở đây.
  • Sau đó, chúng tôi sử dụng giá trị trả về của get_template_directory()để lấy đường dẫn và bọc nó vào một filemtime()cuộc gọi để có được lần cuối cùng nơi biểu định kiểu được chỉnh sửa. Bằng cách này, chúng tôi sẽ thêm số phiên bản mới làm đối số truy vấn và buộc trình duyệt tải lại biểu định kiểu nếu có phiên bản mới. Không cần phải tải lại cứng với Ctrl+ F5.
  • Một điều quan trọng là thêm các phụ thuộc phù hợp vì bạn không muốn các kiểu của mình bị ghi đè với độ đặc hiệu cao hơn wp-admin.css, ie(thậm chí tệ hơn) hoặc bảng màu. Phần thực sự khó khăn là kiểm tra bảng màu, vì tệp này mang hầu hết những gì được tạo kiểu trong giao diện người dùng quản trị và là cài đặt của người dùng. Chúng tôi muốn thêm điều này là phụ thuộc là tốt.
  • Điều cuối cùng chúng ta làm là gói cuộc gọi để thêm hook vào một chức năng khác được nối với admin_head-*hook theo ngữ cảnh , trong đó *là pagelug. Chúng tôi móc nó hai lần để xem xét các bài đăng mới cũng như chỉnh sửa.

Đây là mã cho functions.phptập tin của bạn .

add_action( 'admin_head-post.php', 'wpse44135AttachAdminStyle' );
add_action( 'admin_head-post-new.php', 'wpse44135AttachAdminStyle' );
function wpse44135AttachAdminStyle()
{
    add_action( 'admin_enqueue_scripts', 'wpse44135EnqueueAdminStyle' );
}
function wpse44135EnqueueAdminStyle()
{
    $scheme = get_user_meta(
        get_current_user_id(),
        'admin_color',
        true
    );

    wp_enqueue_style(
        "admin_style",
        get_template_directory_uri()."/scripts/custom.css",
        array( 'wp-admin', 'ie', "colors-{$scheme}" ),
        filemtime( get_template_directory()."/scripts/custom.css" ),
        "all"
    );
}

Lựa chọn thay thế?

Trong trường hợp bạn chỉ muốn thêm kiểu vào trình soạn thảo TinyMCE WYSIWYG, bạn cũng có thể sử dụng add_editor_style()để đăng ký biểu định kiểu chủ đề của mình trong trình soạn thảo văn bản khu vực quản trị. Đường dẫn bạn thêm làm đối số có liên quan đến gốc chủ đề của bạn. Trong functions.phptập tin của bạn :

add_editor_style( '/scripts/custom.css' );

Nó đơn giản như vậy.


Tôi nhận được "Lỗi nghiêm trọng: Không thể redeclare wpse44135_enqueue_admin_style () (đã tuyên bố trước đây" khi thử điều này.
markratledge 9/12/13

@songdogtech "Không thể redeclare" giải thích rằng một hàm, phương thức, v.v. đã được khai báo_ / set. Vấn đề _ tôi đã sử dụng cùng một tên hàm hai lần. Đối với tương lai: Vui lòng chỉ cần google các lỗi và tệp PHP đơn giản và chỉnh sửa . Cảm ơn.
kaiser

Tôi không biết cách sửa lỗi, đó là những gì tôi đã nhận xét.
markratledge

0

Đây là một cách nhanh chóng để thêm một số phong cách trong đầu quản trị. hi vọng điêu nay co ich:

add_action('admin_head', 'my_custom_fonts');
function my_custom_fonts() {
  echo '<style>
    body, td, textarea, input, select {
    font-family: "Lucida Grande";
    font-size: 12px;
  } 
</style>';
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.