删除帖子页面“查看帖子”链接

时间:2011-06-22 作者:Aki

我创建了一个自定义的帖子类型,但它只是为了在页面上列出一些数据,而没有任何单一的。php。

如何在帖子页面上禁用so当我单击发布时,它不会显示“查看页面”链接,并且如何在该帖子类型的列中禁用“查看”链接。

谢谢

2 个回复
SO网友:pendjer

更改public 的参数register_post_type() 将删除链接以公开查看您的自定义帖子类型。

\'public\' => false, 
请参见:WordPress Codex

请注意,这还将从管理员导航菜单中隐藏自定义帖子类型,这可能是您不想要的。要隐藏“查看帖子”链接,但在管理菜单中保留帖子类型,请使用show_ui 就像这样:

\'public\'  => false,
\'show_ui\' => true,

SO网友:Matt

前面的答案不正确。无法使用标签修改后期编辑页面顶部的邮件。您需要使用post_updated_messages 滤器

下面的函数将使用帖子类型的名称自定义消息——如果您使用自定义帖子类型,那么这个函数很方便。这是上示例的修改版本Wordpress Codex.

请注意,视图和预览链接由$viewLink, $previewLink, 和$schedPreviewLink 变量,仅当当前帖子的帖子类型的可见性设置为公共时才会显示。

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

结束

相关推荐

使用自定义帖子类型限制QUERY_POSTS函数中的帖子数量

我使用下面的代码来显示定义为自定义帖子类型并按自定义分类法“england”过滤的帖子。我曾尝试在query\\u posts函数中使用“posts\\u per\\u page=5”,但这会产生一组与我的“news”类型的一个帖子类别完全不同的帖子。当我从查询中删除每页的帖子时,它会返回我想要的列表,但默认为Wordpress设置中设置的默认值10。如何在下面的代码中重写它? <?php query_posts( array( \'country\' => \'event-en