web-dev-qa-db-fra.com

Supprimer le message "View Post" Link

J'ai créé un type d'article personnalisé, mais il ne s'agit que de répertorier des données sur une page et qu'il ne contient pas de single.php.

Comment désactiver ainsi sur la page de publication lorsque je clique sur Publier, le lien "Afficher la page" n'est pas affiché et comment désactiver le lien "Afficher" dans les colonnes de ce type de publication.

Merci

2
Aki

Si vous modifiez l'argument public de register_post_type(), le lien permettant d'afficher publiquement votre type de publication personnalisée sera supprimé.

'public' => false, 

Voir: WordPress Codex

Notez que cela masquera également votre type d'article personnalisé dans les menus de navigation de l'administrateur, ce que vous ne voudrez peut-être pas. Pour masquer le lien "Afficher le message" tout en conservant le type de message dans les menus de l'administrateur, utilisez également show_ui comme suit:

'public'  => false,
'show_ui' => true,
8
pendjer

La réponse précédente est incorrecte. Le message en haut d'une page de post-modification ne peut pas être modifié à l'aide d'étiquettes. Vous devez utiliser le filtre post_updated_messages.

La fonction suivante personnalisera les messages en utilisant le nom du type de publication - pratique si vous utilisez des types de publication personnalisés. C'est une version modifiée de l'exemple sur le Wordpress Codex .

Notez que les liens Afficher et Aperçu sont contrôlés avec les variables $viewLink, $previewLink et $schedPreviewLink, qui n'apparaîtront que si la visibilité du type de publication de la publication en cours est définie sur public.

function custom_post_type_messages($messages) {
  global $post, $post_ID;

  $post_type = get_post_type( $post_ID );
  $obj = get_post_type_object($post_type);

  $singular = $obj->labels->singular_name;

  $viewLink = ($obj->public) ?  ' <a href="%s">View '.strtolower($singular).'</a>' : "";
  $previewLink = ($obj->public) ? ' <a target="_blank" href="%s">Preview '.strtolower($singular).'</a>': "";
  $schedPreviewLink = ($obj->public) ? ' <a target="_blank" href="%2$s">Preview '.strtolower($singular).'</a>': "";

  $messages[$post_type] = array(
    0 => '', // Unused. Messages start at index 1.
    1 => sprintf( __($singular.' updated.'.$viewLink), esc_url( get_permalink($post_ID) ) ),
    2 => __('Custom field updated.'),
    3 => __('Custom field deleted.'),
    4 => __($singular.' updated.'),
    5 => isset($_GET['revision']) ? sprintf( __($singular.' restored to revision from %s'), wp_post_revision_title( (int) $_GET['revision'], false ) ) : false,
    6 => sprintf( __($singular.' published.'.$viewLink), esc_url( get_permalink($post_ID) ) ),
    7 => __('Page saved.'),
    8 => sprintf( __($singular.' submitted.'.$previewLink), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
    9 => sprintf( __($singular.' scheduled for: <strong>%1$s</strong>.'.$schedPreviewLink), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
    10 => sprintf( __($singular.' draft updated.'.$previewLink), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
  );
  return $messages;
}

add_filter('post_updated_messages', 'custom_post_type_messages' );
3
Matt