Dodaj wsparcie dla pól niestandardowych w WordPressie z łatwością
Objaśnienie
Aby dodać niestandardowe pola do swoich postów, stron lub niestandardowych typów postów w WordPressie, musisz włączyć ich obsługę. Ten kod robi dokładnie to, wykorzystując funkcję add_post_type_support. Umożliwia to dodawanie niestandardowych pól do standardowych postów, stron, a nawet niestandardowych typów postów, takich jak 'produkt'.
Po dodaniu wsparcia możesz wyświetlić te niestandardowe pola w edytorze postów. Funkcja wp_dudecom_display_custom_fields tworzy pole wejściowe, w którym możesz wprowadzić dane swojego niestandardowego pola. To pole wejściowe jest dodawane do edytora za pomocą meta boxa, który jest sekcją na ekranie edycji postu.
Aby zapewnić, że dane wprowadzone w tych niestandardowych polach są zapisywane, używana jest funkcja wp_dudecom_save_custom_fields. Sprawdza ona uprawnienia i bezpieczeństwo przed zapisaniem danych w bazie danych. Dzięki temu tylko uprawnieni użytkownicy mogą wprowadzać zmiany.
Na koniec kod zawiera funkcję do ładowania wszelkich niezbędnych skryptów i stylów w obszarze administracyjnym WordPressa. Jest to przydatne, jeśli potrzebujesz ulepszyć funkcjonalność lub wygląd swoich niestandardowych pól za pomocą JavaScriptu lub CSS.
- Włącz niestandardowe pola: Użyj add_post_type_support dla postów, stron i typów niestandardowych.
- Wyświetl w edytorze: Dodaj pola wejściowe za pomocą meta boxów.
- Zapisz dane: Bezpiecznie zapisuj dane niestandardowych pól z kontrolą uprawnień.
- Ulepsz administrację: Ładuj skrypty i style w razie potrzeby.
Kod
<?php
// Add support for custom fields in WordPress
// Hook into the 'init' action to register custom post type support for custom fields
function wp_dudecom_add_custom_fields_support() {
// Add post type support for custom fields
add_post_type_support('post', 'custom-fields');
add_post_type_support('page', 'custom-fields');
// Example: Add custom fields support for a custom post type 'product'
add_post_type_support('product', 'custom-fields');
}
add_action('init', 'wp_dudecom_add_custom_fields_support');
// Function to display custom fields in the post editor
function wp_dudecom_display_custom_fields($post) {
// Retrieve existing custom field value
$custom_field_value = get_post_meta($post->ID, '_wp_dudecom_custom_field', true);
// Display the custom field input box
echo '<label for="wp_dudecom_custom_field">Custom Field:</label>';
echo '<input type="text" id="wp_dudecom_custom_field" name="wp_dudecom_custom_field" value="' . esc_attr($custom_field_value) . '" />';
}
// Hook to add custom fields meta box
function wp_dudecom_add_custom_fields_meta_box() {
add_meta_box(
'wp_dudecom_custom_fields_meta_box',
'Custom Fields',
'wp_dudecom_display_custom_fields',
['post', 'page', 'product'],
'normal',
'high'
);
}
add_action('add_meta_boxes', 'wp_dudecom_add_custom_fields_meta_box');
// Save custom field data when the post is saved
function wp_dudecom_save_custom_fields($post_id) {
// Check if our nonce is set.
if (!isset($_POST['wp_dudecom_custom_field_nonce'])) {
return $post_id;
}
// Verify that the nonce is valid.
if (!wp_verify_nonce($_POST['wp_dudecom_custom_field_nonce'], 'wp_dudecom_save_custom_fields')) {
return $post_id;
}
// Check if the user has permission to edit the post.
if (!current_user_can('edit_post', $post_id)) {
return $post_id;
}
// Sanitize and save the custom field value
$custom_field_value = sanitize_text_field($_POST['wp_dudecom_custom_field']);
update_post_meta($post_id, '_wp_dudecom_custom_field', $custom_field_value);
}
add_action('save_post', 'wp_dudecom_save_custom_fields');
// Enqueue scripts and styles for the admin area
function wp_dudecom_enqueue_admin_scripts() {
wp_enqueue_script('wp_dudecom_admin_script', get_template_directory_uri() . '/js/wp-dudecom-admin.js', ['jquery'], null, true);
wp_enqueue_style('wp_dudecom_admin_style', get_template_directory_uri() . '/css/wp-dudecom-admin.css');
}
add_action('admin_enqueue_scripts', 'wp_dudecom_enqueue_admin_scripts');
?>
Instrukcja
Lokalizacja pliku: Dodaj poniższy kod do pliku functions.php
swojego motywu lub do pliku własnej wtyczki.
Wymagania wstępne: Upewnij się, że masz dostęp do plików swojego motywu WordPress lub możliwość stworzenia własnej wtyczki.
Kroki wdrożenia:
- Dostęp do plików WordPress:
- Zaloguj się do panelu administracyjnego WordPress.
- Przejdź do Wygląd > Edytor motywu, jeśli edytujesz
functions.php
, lub użyj klienta FTP, aby uzyskać dostęp do plików WordPress.
- Otwórz odpowiedni plik:
- Jeśli używasz
functions.php
, zlokalizuj go i otwórz w edytorze. - Jeśli tworzysz własną wtyczkę, stwórz nowy plik PHP w katalogu
wp-content/plugins
.
- Jeśli używasz
- Wstaw kod:
- Skopiuj podany fragment kodu i wklej go na końcu swojego pliku
functions.php
lub w pliku własnej wtyczki.
- Skopiuj podany fragment kodu i wklej go na końcu swojego pliku
- Zapisz zmiany:
- Jeśli korzystasz z edytora motywu, kliknij Aktualizuj plik.
- Jeśli korzystasz z własnej wtyczki, upewnij się, że plik jest zapisany i aktywuj wtyczkę w panelu administracyjnym WordPress w sekcji Wtyczki.
- Sprawdź wsparcie dla pól niestandardowych:
- Utwórz lub edytuj post, stronę lub niestandardowy typ postu (np. 'produkt').
- Sprawdź, czy w ekranie edytora znajduje się meta box dla pól niestandardowych.
- Przetestuj funkcjonalność pól niestandardowych:
- Wprowadź dane do pola wejściowego pól niestandardowych i zapisz post.
- Upewnij się, że dane są zapisane i wyświetlane poprawnie po ponownym edytowaniu posta.
Jeśli potrzebujesz pomocy przy tym wdrożeniu lub wymagasz bardziej zaawansowanej funkcjonalności, rozważ skontaktowanie się z wp-dude.com w celu uzyskania fachowej pomocy w zakresie WordPress.