Как отобразить настраиваемое поле в списке сообщений панели инструментов (с заменой заголовка) - PullRequest
0 голосов
/ 14 мая 2019

Я использую WordPress, и я создал собственный тип записи с несколькими настраиваемыми полями (используя ACV, расширенные настраиваемые поля). Я скрыл все основные поля WordPress, такие как заголовок, миниатюры редактора содержимого и т. Д., И т. Д., Поэтому я оставляю толькомои настраиваемые поля для создания нового сообщения.

Так как при создании сообщения заголовок не заполняется, я получаю список сообщений с каждым заголовком, установленным как «автоматический черновик».не хочу, очевидно.

Мой вопрос прост:

Возможно ли, и если да, как заменить заголовок одним из моих настраиваемых полей в списке сообщений на панели инструментов.

Я искал везде, но не мог найти ответ.

Извините за мой английский, это не мой родной язык, я надеюсь, вы понимаете, что я в основном хочу сделать.

Спасибо за ваше время, чтобы прочитать мой вопрос.Хорошего дня

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Ну, мне удалось найти решение самостоятельно.Если я могу помочь кому-то еще, вот как это происходит:

Допустим, у вас есть пользовательский тип записи с именем «test» И вы добавили 3 настраиваемых поля для этого пользовательского типа записи с именем «one»«два» и «три» (да, я знаю, что это супер креатив!) И последнее, но не менее важное, что вы хотите удалить, название и дату из таблицы списка сообщений на панели инструментов.

Сначала у вас естьчтобы создать функцию, которая удаляет заголовок и дату, а также создает новые столбцы.

function custom_columns($columns)
{
    unset($columns['title']);
    unset($columns['date']);
    return array_merge(
        $columns,
        array(
            'one' => __('One'),
            'two' => __('Two'),
            'three' => __('Three')
        )
    );
}
add_filter('manage_test_posts_columns', 'custom_columns');

, затем вам необходимо отобразить их в таблице списка сообщений следующим образом:

function display_custom_columns($column, $post_id)
{
    switch ($column) {
        case 'one':
            echo get_post_meta($post_id, 'one', true);
            break;
        case 'two':
            echo get_post_meta($post_id, 'two', true);
            break;
        case 'three':
            echo get_post_meta($post_id, 'three', true);
            break;
    }
}
add_action('manage_test_posts_custom_column', 'display_custom_columns', 10, 2);

Вот, пожалуйста!Надеюсь, это поможет кому-то еще!

спасибо за ваше время!

Дополнительная литература

0 голосов
/ 14 мая 2019

Вы можете использовать wp_insert_post_data для выполнения желаемой функциональности.Это действие запускается при создании или обновлении сообщения.

add_action( 'wp_insert_post_data', 'my_updated_title', 99, 1 );

function my_updated_title( $data ) {

  // If this is just a revision, don't update title.
  if ( wp_is_post_revision( $data['ID'] ) ) {
    return;
  }

  // Set the post title to your custom field value
  $data['post_title'] = get_field( 'your_acf_field', $data['ID'] );

  // Return the updated post data
  return $data;

}
...