Проблема с контекстной помощью, переписывающей существующий контент

Мне что-то не хватает:

function page_help($contextual_help, $screen_id, $screen) { if ($screen_id == 'page') { $contextual_help = ' <h5>Shortcodes</h5> <p>Shortcodes help</p> '.$contextual_help; return $contextual_help; } elseif ($screen_id == 'post') { $contextual_help = ' <h5>Post help</h5> <p>Help is on its way!</p> '.$contextual_help; return $contextual_help; } } add_filter('contextual_help', 'page_help', 10, 3); 

Код вставляет в правильные экраны, но у меня возникают две проблемы:

  1. Код вставляет вверху, я бы хотел его внизу.

  2. Код удаляет помощь со всех других экранов, кроме указанных выше.

Заранее благодарим за советы!

Нильс

Solutions Collecting From Web of "Проблема с контекстной помощью, переписывающей существующий контент"

Чтобы не удалять помощь со всех других экранов, вам нужно всегда возвращать текст контекстной справки, иначе ваш фильтр ничего не вернет для экранов без страницы / сообщения, и поэтому ничего не появится. Переместите возврат в нижнюю часть функции, вне вашего if / else. Кроме того, исходная контекстная справка конкатенируется до конца вашего пользовательского сообщения, поэтому переместите ее на передний план, чтобы текст был помещен внизу. Таким образом:

 function myprefix_page_help($contextual_help, $screen_id, $screen) { if ($screen_id == 'page') { $contextual_help = $contextual_help.' <h5>Shortcodes</h5> <p>Shortcodes help</p>'; } elseif ($screen_id == 'post') { $contextual_help = $contextual_help.' <h5>Post help</h5> <p>Help is on its way!</p>'; } return $contextual_help; } add_filter('contextual_help', 'myprefix_page_help', 10, 3);