• Вопрос без рабочей ссылки на проблему считается риторическим. Без ссылки и скриншота - провокацией!

Название редактируемого товара в админпанели

Image CMS

Stork.71

Гуру
Местный
#1
Часто сталкиваюсь с такой проблемой, что открыто для редакции несколько карточек товара, и начинаешь путаться между ними. Приходится каждый раз пролистывать страницу в самый верх, чтобы понять, на каком товаре находишься или убедиться, что случайно не ошибся.
Хотелось бы, чтобы название текущего товара отображалось сверху в админпанели, сразу после кнопки "просмотреть товар"
 

Stork.71

Гуру
Местный
#3
Ща народ подтянется, чета придумаем. :)

нашел в кодексе (ну и немного модифицировал) вот такой кусок кода, отвечающий за добавление групп меню в админбар.
PHP:
add_action( 'admin_bar_menu', 'ProductNameInAdminBar', 999 );

function ProductNameInAdminBar( $wp_admin_bar ) {
    $args = array(
        'id'    => 'current-product-name',
        'title' => 'ТЕКУЩИЙ ТОВАР',
        /*'href'  => 'http://mysite.com/my-page/',*/
        /*'meta'  => array( 'class' => 'my-toolbar-page' )*/
    );
    $wp_admin_bar->add_node( $args );
}
Осталось только заменить 'ТЕКУЩИЙ ТОВАР' на какое-то выражение, которое будет подтягивать title товара. Ну и в идеале как-то сделать чтобы это работало только для товаров, но не для других страниц.

Для красоты можно будет прописать #wp-admin-bar-current-product-name {font-weight: bold;}
 
Последнее редактирование:

Stork.71

Гуру
Местный
#4
Все оказалось достаточно просто. Помогла конструкция get_the_title()
PHP:
Все оказалось достаточно просто. 
/** Показывать название редактируемого товара в админ-бар **/
add_action( 'admin_bar_menu', 'ProductNameInAdminBar', 999 );
function ProductNameInAdminBar( $wp_admin_bar ) {
   $args = array(
     'id'  => 'current-product-name',
     'title' => get_the_title(),
     /*'href'  => 'http://mysite.com/my-page/',*/
     /*'meta'  => array( 'class' => 'my-toolbar-page' )*/
   );
   $wp_admin_bar->add_node( $args );
}
Единственное что не получилось применить стили. Для админки они грузятся совершенно из другого места.
Пробовал еще писать просто '<b>' get_the_title() '</b>' - но все упало.
 

Stork.71

Гуру
Местный
#6
так заработало. :)
только <b> почему-то игнорируется. То есть в коде он есть, но надпись не становится жирной. Ну да и фиг с ним, сделал вот так, еще красивше получилось:
PHP:
'title' => '<span style="font-size: larger; font-weight:bold;">'.get_the_title().'</span>',
а точками отделяются php-переменные от просто текста?
 

searchingman

Гуру
Местный
#7
так заработало. :)
только <b> почему-то игнорируется. Ну да и фиг с ним, сделал так, еще красивше получилось:
PHP:
'title' => '<span style="font-size: larger; font-weight:bold;">'.get_the_title().'</span>',
а точками отделяются php-переменные от просто текста?
Точка - это символ конкатенации (склеивание) строк в php.
 

Stork.71

Гуру
Местный
#8
Точка - это символ конкатенации (склеивание) строк в php.
То есть я склеиваю кусок обычного текста (выделен кавычками) с содержащей текст php-переменной (без кавычек) и опять с обычным текстом (опять выделен кавычками). Так?