Могу ли я отобразить Да или Нет вместо 0 или 1 в табличном представлении администратора Wordpress (WP_List_Table), используя add_action или add_filter? - PullRequest
0 голосов
/ 12 марта 2020

Я создаю плагин Wordpress, который использует свою собственную таблицу базы данных.

Когда я отображаю таблицу на своей странице плагинов, все данные таблицы базы данных возвращаются правильно, но я хотел бы сделать следующее: показать логические значения 0 или 1 как Нет или Да.

Поэтому я хочу изменить это enter image description here На это enter image description here

Я искал https://codex.wordpress.org (что плохо документировано), но я не смог найти какие-либо функции Wordpress, которые я могу вызвать для манипулирования выведенными значениями из таблицы базы данных. В данный момент я использую jQuery, чтобы исправить это, но мне это кажется немного хакерским.

// Change the testimonials boolean values from 0 or 1 to Yes or No and M or F to Male or Female
function parseTestimonials() {
    echo '<script>
            jQuery(document).ready(function() {
                jQuery("td:contains(\'1\').show_testimonial").each(function(){
                    jQuery(this).text("No");
                });

                jQuery("td:contains(\'0\').show_testimonial").each(function(){
                    jQuery(this).text("Yes");
                });

                jQuery("td:contains(\'M\').gender").each(function(){
                    jQuery(this).text("Male");
                });

                jQuery("td:contains(\'F\').gender").each(function(){
                    jQuery(this).text("Female");
                });
            });
        </script>';
}

add_action('in_admin_footer', 'parseTestimonials');

1 Ответ

1 голос
/ 12 марта 2020

В классе, который вы используете для расширения таблицы списка, вы должны иметь возможность сделать что-то вроде кода ниже, где mycolumnname - это имя, которое вы дали столбцу.

Вы можете создавать собственные функции для любого столбца в таблица списка с предшествующей ей функцией column_

$ item будет строкой результата базы данных, а $ column_name будет полем результата базы данных (при условии, что вы назвали свои столбцы такими же, как поля вашей базы данных). Если нет, вы можете:

$switch ($item['myfieldname']) {

в противном случае

function column_mycolumnname($item, $column_name)
        {
          switch ($item[$column_name]) {
             case '0':
                return 'Yes';
             case '1':
                return 'No';
             case 'M':
                return 'Male';
             case 'F':
                return 'Female';
             default: 
                //doesn't match the above so return the database field contents
                return $item[$column_name];
            }
    }

В другом примере, вот как добавить флажок в поле «ID» базы данных, где имя столбца списка списка 'cb':

function column_cb($item)
        {
        return sprintf('<input type="checkbox" name="id[]" value="%s" />', $item['ID']);
        }

С этим вы можете $ _GET получить идентификатор базы данных для любой строки, в которую пользователь поставил флажок, без фактического отображения номера идентификатора.

edit - oops Похоже, вы уже разобрались в флажках полей. Тот же принцип.

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