Cách thêm lời nhắc / ghi chú vào hộp Meta Post mới


7

Tôi có một trang web đa tác giả và tôi sử dụng plugin WyPiekacz để yêu cầu các tác giả thêm thẻ 1-5, chỉ chọn một danh mục duy nhất và bao gồm một hình ảnh nổi bật ( và yêu cầu kích thước tối thiểu cho hình ảnh nổi bật ).

WyPiekacz cũng có thể hạn chế tiêu đề / nội dung tối thiểu / chiều dài tối đa. WyPiekacz rất tuyệt, nhưng nó sẽ chỉ nói với tác giả sau khi họ đã làm gì đó sai, không cho họ biết các yêu cầu trước khi họ mắc lỗi.

Tôi muốn có thể thêm một ghi chú / lời nhắc vào mỗi hộp meta để hướng dẫn tác giả. Hiện tại tôi đã viết các ghi chú trực tiếp vào các tập tin wordpress. Đây là một ảnh chụp màn hình bổ sung của tôi.

Thẻ Meta Box Lưu ý Wordpress

Hộp meta hình ảnh nổi bật nằm trong wp-admin / gồm / post.php Hộp thẻ và danh mục nằm trong wp-admin / gồm / meta-box.php

Tôi muốn bao gồm các ghi chú này trong tệp tin.php hoặc dưới dạng cài đặt trong WyPiekacz.

Tôi không phải là một lập trình viên, vì vậy mọi sự trợ giúp sẽ được đánh giá rất cao.


xin đừng quên chấp nhận câu trả lời giải quyết vấn đề của bạn. Nó ghi nhận những người giúp đỡ bạn, và cũng đưa nó ra khỏi đống chưa được trả lời.
Stephen Harris

Câu trả lời:


7

Bạn không bao giờ nên chỉnh sửa các tập tin cốt lõi của WordPress.

Thay vào đó, bạn chỉ nên chỉnh sửa các tệp Plugin và hoặc tệp Theme (thư mục Plugins hoặc Themes)

Một trong những cách dễ nhất là đạt được điều này sẽ thông qua jQuery;

jQuery('<div/>', {
    id: 'your-note',
    text: 'Add up to 5 tags...etc'
}).appendTo('#tagsdiv-post_tag .inner');

Lưu phần trên vào tệp alert.js (hoặc đặt tên bất cứ thứ gì bạn muốn). Đặt tệp này trong thư mục chủ đề của bạn /theme_name/js/cho mục đích tổ chức.

Sau đó, trong tệp tin.php của bạn dán;

function load_my_alerts(){
      wp_register_script( 
        'my_alerts', 
        get_template_directory_uri() . '/js/alerts.js', 
        array( 'jquery' )
    );
    wp_enqueue_script( 'my_alerts' );
}
add_action('admin_enqueue_scripts', 'load_my_alerts');

Điều này sẽ enqueue và tải tệp alert.js của bạn chỉ trong phần quản trị viên trên trang web của bạn và do đó, nó sẽ áp dụng jQuery của bạn bằng cách thêm một divbộ chọn ID theo lựa chọn của bạn theo sau là văn bản bạn muốn.

Phần này ('<div/>', {sẽ tạo ra một khép kín divcho bạn, tức là<div id="your-note">your note here...</div>

CẬP NHẬT

Bạn có thể có hiệu lực thử làm điều này như một mẫu cho nhiều mục;

jQuery(document).ready(function($){

$('<div/>', {
    id: 'xxx',
    text: 'yyy'
}).appendTo('#tagsdiv-post_tag .inner');

$('<div/>', {
    id: 'aaa',
    text: 'bbb'
}).appendTo('#some_other_element .example');

// etc...

});

Cảm ơn, nhưng nó dường như không hoạt động. Tôi đã thực hiện chính xác những gì bạn đề cập, nhưng tin nhắn không hiển thị. Tôi có cần thực hiện phần mã jQuery hoàn chỉnh cho mỗi hộp meta không? hoặc có một cách trực tiếp và hiệu quả hơn?
Travis Pflanz

Điều đó khá trực tiếp và hiệu quả - vì những gì bạn đang muốn làm chủ yếu là thao tác DOM. Cách khác là sử dụng thao tác PHP DOMDocument hoặc một cái gì đó như PHP Simple DOM Parser nhưng cái sau có nghĩa là bạn cần thêm vào một thư viện, không đề cập đến sau đó viết mã để thao tác DOM. Vì vậy, trừ khi bất kỳ ai khác biết cách dễ dàng hơn để nối một thông điệp vào metabox Thẻ đơn giản hơn so với sử dụng jQuery thì đó có lẽ là cách tốt nhất. (IMO)
Adam

@TravisPflanz Xem nguồn trong khi ở trong khu vực quản trị của bạn và đảm bảo tệp alert.js của bạn được tải. Nếu nó không tồn tại thì có lỗi với đầu vào của bạn. Nếu nó tồn tại, hãy thử cập nhật với đoạn mã ở trên. jQuery(document).ready(function($){ //do your stuff here });
Adam

Cảm ơn, phần CẬP NHẬT của câu trả lời đã làm việc. Vì tôi cũng bao gồm một liên kết đến một trang trợ giúp, "văn bản" đã được đổi thành "html".
Travis Pflanz

3

Sử dụng bộ lọc hình thu nhỏ "admin_post_thumbnail_html" sẽ là cách tốt nhất để thêm văn bản vào siêu dữ liệu Ảnh nổi bật và tránh sử dụng JavaScript / jQuery:

Xem tài liệu tham khảo dành cho nhà phát triển "admin_post_thumbnail_html" trên wordpress.org

Bạn sẽ sử dụng nó bằng cách thêm một cái gì đó như thế này vào hàm.php:

add_filter('admin_post_thumbnail_html', 'add_featured_image_text');
function add_featured_image_text($content) {
    return $content .= '<p>The Featured Image should be at least 1024px wide</p>';
}

1

Đầu tiên tôi muốn nhắc lại @userabuser. Bạn không bao giờ nên chỉnh sửa các tập tin cốt lõi của WordPress . Trên thực tế, bạn nên tránh chỉnh sửa các trình cắm và chủ đề (thay vào đó hãy sử dụng chủ đề con) vì các thay đổi bị mất trên một bản cập nhật và bạn nên cập nhật!

Tôi sẽ làm theo phương pháp được nêu trong các câu hỏi sau:

và hủy đăng ký metabox hiện có được sử dụng (tôi nghĩ khi @userabuser sử dụng, ID là #tagsdiv-post_tag). Sau đó đăng ký lại, cho phép bạn tạo một chức năng xác định bên trong của nó như được giải thích trong các bài viết ở trên.

Tuy nhiên, đối với mục đích của bạn, chức năng bạn muốn bắt chước là post_tags_meta_box(), được tìm thấy tại đây: http://core.trac.wordpress.org/browser/tags/3.3/wp-admin/includes/meta-boxes.php#L265

Chỉ cần sử dụng nội dung của chức năng đó trong cuộc gọi lại tùy chỉnh của riêng bạn và chỉnh sửa để hiển thị tin nhắn của bạn.

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.