it-swarm.com.de

Problem mit der kontextbezogenen Hilfe beim Überschreiben vorhandener Inhalte

Mir fehlt hier etwas:

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);

Der Code wird in die richtigen Bildschirme eingefügt, aber ich habe zwei Probleme:

  1. Der Code wird oben eingefügt, ich würde ihn gerne unten sehen.

  2. Der Code löscht die Hilfe von allen anderen Bildschirmen mit Ausnahme der oben genannten.

Vielen Dank im Voraus für eure Tipps!

Niels

1
Niels

Um die Hilfe nicht von allen anderen Bildschirmen zu löschen, müssen Sie immer den kontextbezogenen Hilfetext zurückgeben. Andernfalls gibt Ihr Filter nichts für Nicht-Seiten-/Post-Bildschirme zurück und es wird nichts angezeigt. Bewegen Sie die Rückkehr zum Ende der Funktion außerhalb Ihres if/else. Außerdem wird die ursprüngliche kontextbezogene Hilfe mit dem Ende Ihrer benutzerdefinierten Nachricht verknüpft. Verschieben Sie sie daher nach vorne, damit der Text unten angezeigt wird. Somit:

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);
0
helenhousandi