Intereting Posts
Невозможно изменить зарегистрированный пользовательский тип перезаписываемого пула Как показать пользовательский шаблон сообщения с одной страницы? событие «save_post» запускается, когда я хочу начать новую запись проблема post var с кодировкой Shortcode электронной почты пользователей WordPress с использованием BCC Условный тег для сообщения Как получить ссылку на профиль пользователя twitter? Как сделать кнопку, которая открывает медиа-загрузчик iframe? Как импортировать и экспортировать настройки из Live customizer? Ошибка дублирования записей базы данных Возвращаемый пользователь Мета текст в качестве ссылок на редактирование сообщений внутри столбцов пользователя как вставлять .mp4 видео postfix с секретным ключом the_post_thumbnail («medium») все еще дает img img Запуск сценариев и стилей нескольких CPTS Как я могу прикреплять изображения к сообщению из медиа-библиотеки?

Настройка мета-запроса с несколькими типами сообщений, которые имеют одинаковые отношения на одной странице

Я создаю клиентский портал, так как мои клиенты могут поддерживать свои проекты и оставлять отзывы. У меня есть два пользовательских типа сообщений, называемых «Клиенты» и «Проекты», и каждый из них извлекает информацию из другого в бэкэнд. Когда я создаю клиента, он автоматически генерирует свой postID в выпадающем меню по типу post-проектов, которые я могу назначить клиенту для проекта.

То, что я пытаюсь выполнить, – показать все проекты, связанные с выбранным клиентом, на одной странице на передней панели. Единственной страницей будет клиентский портал, который генерируется типом сообщения клиента.

Кажется, у меня проблемы со стоимостью и сравнением. Когда я изменяю значение на идентификационный номер клиента, я получаю все проекты-назначения для клиента A, но при просмотре клиента BI просматривают проекты клиента A (я знаю это, потому что я назначаю значение конкретному идентификатору клиента). Теперь, когда я меняю значение на get_the_ID() он не отображает ни одного сообщения, если я не изменю сравнение с NOT IN. Есть ли способ, чтобы я мог отображать все выбранные сообщения проекта своему клиенту назначения, не отображая все сообщения, которые я создал в пользовательском сообщении проекта?

Вот мой код для single.php, который будет отображать проекты на портале клиентов.

  <?php global $post; $projects = new WP_Query( array( 'post_type' => array( 'projects'), 'posts_per_page' => -1, 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'clientType', 'value' => array( $postid = get_post_meta( $post->ID, 'clientType', true )), 'compare' => 'LIKE', 'type' => 'NUMERIC' )))); ?> 

Ниже приведен код, который я использую, чтобы назначить клиента проектам в панели администрирования проектов. Этот скрипт отображает любого клиента, который я создал на странице клиента, и отображаю его имена в выпадающем меню.

  class projects { var $FOR_POST_TYPE = 'projects'; var $SELECT_POST_TYPE = 'client_portal'; var $SELECT_POST_LABEL = 'Client'; var $box_id; var $box_label; var $field_id; var $field_label; var $field_name; var $meta_key; function __construct() { add_action( 'admin_init', array( $this, 'admin_init' ) ); } function admin_init() { add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); add_action( 'save_post', array( $this, 'save_post' ), 10, 2 ); $this->meta_key = "_selected_{$this->SELECT_POST_TYPE}"; $this->box_id = "select-{$this->SELECT_POST_TYPE}-metabox"; $this->field_id = "selected-{$this->SELECT_POST_TYPE}"; $this->field_name = "selected_{$this->SELECT_POST_TYPE}"; $this->box_label = __( "Select {$this->SELECT_POST_LABEL}", 'projects' ); $this->field_label = __( "Choose {$this->SELECT_POST_LABEL}", 'projects' ); } function add_meta_boxes() { add_meta_box( $this->box_id, $this->box_label, array( $this, 'select_box' ), $this->FOR_POST_TYPE, 'side' ); } function select_box( $post ) { $selected_post_id = get_post_meta( $post->ID, 'clientType', true ); global $wp_post_types; $save_hierarchical = $wp_post_types[$this->SELECT_POST_TYPE]->hierarchical; $wp_post_types[$this->SELECT_POST_TYPE]->hierarchical = true; wp_dropdown_pages( array( 'id' => $this->field_id, 'name' => $this->field_name, 'selected' => empty( $selected_post_id ) ? 0 : $selected_post_id, 'post_type' => $this->SELECT_POST_TYPE, 'show_option_none' => $this->field_label, )); $wp_post_types[$this->SELECT_POST_TYPE]->hierarchical = $save_hierarchical; } function save_post( $post_id, $post ) { if ( $post->post_type == $this->FOR_POST_TYPE && isset( $_POST[$this->field_name] ) ) { update_post_meta( $post_id, 'clientType', $_POST[$this->field_name] ); } } } new projects();