__('Közreműködők'), 'singular_name' => __('Közreműködők'), 'search_items' => __('Közreműködő keresése'), 'all_items' => __('Minden közreműködő'), 'edit_item' => __('Szerkesztés'), 'update_item' => __('Frissítés'), 'add_new_item' => __('Új közreműködő'), 'new_item_name' => __('Új közreműködő neve'), 'menu_name' => __('Közreműködők'), ); $args = array( 'hierarchical' => false, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'update_count_callback' => '_update_post_term_count', 'query_var' => true, 'rewrite' => array('slug' => 'co-author'), ); register_taxonomy('co_author', 'post', $args); } add_action('init', 'register_co_authors_taxonomy'); // INFO: Meta box hozzáadása a közreműködők kiválasztásához a bejegyzés szerkesztő felületen function add_co_authors_meta_box() { add_meta_box( 'co_authors_meta_box', __('Közreműködők'), 'render_co_authors_meta_box', 'post', 'side', 'default' ); } add_action('add_meta_boxes', 'add_co_authors_meta_box'); // INFO: A közreműködők meta box megjelenítése function render_co_authors_meta_box($post) { $co_authors = wp_get_post_terms($post->ID, 'co_author', array('fields' => 'ids')); $all_co_authors = get_terms(array('taxonomy' => 'co_author', 'hide_empty' => false)); echo ''; // INFO: Új közreműködő hozzáadása echo ''; echo ''; } // A közreműködők mentése a bejegyzés mentésekor function save_co_authors_meta_box($post_id) { if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { return; } // Ellenőrizzük, hogy a felhasználónak van-e jogosultsága a bejegyzés szerkesztésére if (!current_user_can('edit_post', $post_id)) { return; } // Ha nincs közreműködő kiválasztva, akkor töröljük az összes közreműködőt if (!isset($_POST['co_authors'])) { wp_set_post_terms($post_id, array(), 'co_author'); } else { // Mentjük a kiválasztott közreműködőket $co_authors = array_map('intval', $_POST['co_authors']); wp_set_post_terms($post_id, $co_authors, 'co_author'); } } add_action('save_post', 'save_co_authors_meta_box'); // Egyéni mezők hozzáadása a közreműködők taxonómia szerkesztő felületéhez function add_co_author_fields($term) { // Ellenőrizzük, hogy a $term változó egy objektum if (is_object($term)) { $url = get_term_meta($term->term_id, 'co_author_url', true); } else { $url = ''; } ?>

ID, 'co_author'); if (!empty($co_authors) && !is_wp_error($co_authors)) { echo '

' . __('Közreműködők') . ':


'; foreach ($co_authors as $co_author) { $url = get_term_meta($co_author->term_id, 'co_author_url', true); if (!empty($url)) { echo '' . esc_html($co_author->name) . ', '; } else { echo '' . esc_html($co_author->name) . ', '; } } echo '
'; } } } // add_action('wp_footer', 'display_co_authors'); // AJAX hívás kezelése új közreműködő hozzáadásához function handle_add_co_author() { $coAuthorName = sanitize_text_field($_POST['name']); if (term_exists($coAuthorName, 'co_author')) { wp_send_json_error(['message' => 'Ez a közreműködő már létezik!']); } else { $term = wp_insert_term($coAuthorName, 'co_author'); if (is_wp_error($term)) { wp_send_json_error(['message' => 'Hiba történt a közreműködő hozzáadása közben.']); } else { wp_send_json_success(); } } } add_action('wp_ajax_add_co_author', 'handle_add_co_author'); // JavaScript és AJAX hozzáadása a WordPress adminhoz function enqueue_admin_scripts($hook) { if ($hook != 'post.php' && $hook != 'post-new.php') { return; } wp_enqueue_script('add-co-author-ajax', get_template_directory_uri() . '/template-parts/contributor.js', array('jquery'), null, true); } add_action('admin_enqueue_scripts', 'enqueue_admin_scripts'); ?>