web-dev-qa-db-fra.com

Problème avec l'aide contextuelle remplaçant le contenu existant

Il me manque quelque chose ici:

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

Le code est inséré dans les écrans corrects, mais j'ai deux problèmes:

  1. Le code est inséré en haut, j'aimerais bien en bas.

  2. Le code supprime l'aide de tous les autres écrans, à l'exception de ceux mentionnés ci-dessus.

Merci d'avance pour vos conseils!

Niels

1
Niels

Afin de ne pas supprimer l'aide de tous les autres écrans, vous devez toujours renvoyer le texte de l'aide contextuelle, sinon votre filtre ne renverra rien pour les écrans autres que les pages/publications et rien ne s'affichera. Déplacez le retour au bas de la fonction, en dehors de votre if/else. De plus, l'aide contextuelle d'origine est en cours de concaténation à la fin de votre message personnalisé. Par conséquent, déplacez-la au premier plan pour que votre texte soit placé en bas. Ainsi:

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