下面是我如何定义CPT的:
$args = array(
\'labels\' => $labels,
\'public\' => FALSE,
\'show_ui\' => TRUE,
\'capability_type\' => SNG_CAP_SUPPORT,
\'hierarchical\' => FALSE,
\'supports\' => array(
\'title\',
\'editor\'
),
\'menu_icon\' => SNG_PLUGIN_URL . \'/images/admin-support.png\',
\'rewrite\' => FALSE,
\'has_archive\' => FALSE );
register_post_type( SNG_SUPPORT_POSTTYPE, $args );
基本上,当用户创建这种post\\u类型的帖子时,会有一条成功消息,上面写着“查看这篇帖子”,这会导致我的网站的前端。com/?sng支持=测试-8。我想删除此消息和链接,但我没有寻找CSS修复。一定有办法让这一切顺利吗?我试着玩ARG,但我似乎不知道我做错了什么。。。
本质上,我不想从URL或前端访问帖子,除非我专门查询它们。
非常感谢您的帮助!:)
最合适的回答,由SO网友:s_ha_dum 整理而成
我想你至少部分想要的是alter the submission update messages, 可能除了@toscho的代码之外。
function kill_message($messages) {
global $post_type;
// var_dump($messages); die;
if (\'your-cpt-slug\' == $post_type) {
// alter your message strings
}
return $messages;
}
add_filter( \'post_updated_messages\', \'kill_message\' );
如果你
var_dump
这个
$messages
变量消息所代表的内容非常明显。你想怎么写就怎么写。
SO网友:fuxia
这是一个已知的错误:#17609 \'View post\' link shown even when post type can\'t be viewed on the front-end.
要修复它,请过滤get_sample_permalink_html
并测试post类型属性:
add_filter( \'get_sample_permalink_html\', function( $html, $post_id )
{
$post_type = get_post_type( $post_id );
$object = get_post_type_object( $post_type );
if ( $object->public && $object->publicly_queryable )
return $html;
add_filter( \'get_shortlink\', function( $shortlink, $id ) use ( $post_id )
{
return $id == $post_id ? \'\' : $shortlink;
}, 10, 2 );
return \'\';
}, 10, 2 );