在自定义POST类型上禁用固定链接

时间:2013-03-15 作者:meWantToLearn

我已经创建了一个自定义帖子类型,但我不希望它有永久链接。默认情况下,输入帖子标题后,它会创建一个永久链接。我不需要生成它们。

根据我的阅读,据说自定义帖子类型将具有永久链接,并且没有办法禁用它。有没有一种方法可以阻止接收永久链接的ajax调用?

2 个回复
最合适的回答,由SO网友:Max Yudin 整理而成

<?php
    add_filter(\'get_sample_permalink_html\', \'my_hide_permalinks\');
    function my_hide_permalinks($in){
        global $post;
        if($post->post_type == \'my_post_type\')
            $out = preg_replace(\'~<div id="edit-slug-box".*</div>~Ui\', \'\', $in);
        return $out;
    }
这将删除:

如果只想删除永久链接,请更换包含以下内容的行preg_replace 具有

$out = preg_replace(\'~<span id="sample-permalink".*</span>~Ui\', \'\', $in);
更新:get_sample_permalink_html 已在版本4.4中更改。

以下是经过更新和测试的代码:

add_filter(\'get_sample_permalink_html\', \'my_hide_permalinks\', 10, 5);

function my_hide_permalinks($return, $post_id, $new_title, $new_slug, $post)
{
    if($post->post_type == \'my_post_type\') {
        return \'\';
    }
    return $return;
}

SO网友:Maxime Culea

作为WordPress documention 建议,只需关闭public registered post类型的参数。

只有在未另行指定的情况下,才会关闭以下参数:

从\\u搜索中排除\\u可公开查询的\\u菜单中显示\\u,这样您就不会再使用单数,并且在管理和;“查看”;按钮也被隐藏。

附:选择的答案显示了在WordPress开发中不应该做的事情,很糟糕。由于存在WordPress builtin Post Type API 为此。因此,请考虑我的答案,因为它满足所有问题的要求,并且使用内置解决方案简单明了。

结束

相关推荐

list child pages as slug

我在我的网站上有一个部分,需要一个页面列表,这些页面是特定ID的后代。我需要将它们列在子页面和孙子页面上。但是页面标题太长,所以我需要使用slug作为标题。我想我可以只使用wp\\u list\\u页面并专门调用此ID的后代,但wp\\u list\\u页面似乎没有办法列出slug而不是页面标题。此外,我必须使用str\\u替换段塞中的破折号。有人能告诉我从哪里开始吗?我最终使用了下面的,这没有更好的效果。。。有什么见解吗?function is_tree($pid) { global