我已经创建了一个自定义帖子类型,但我不希望它有永久链接。默认情况下,输入帖子标题后,它会创建一个永久链接。我不需要生成它们。
根据我的阅读,据说自定义帖子类型将具有永久链接,并且没有办法禁用它。有没有一种方法可以阻止接收永久链接的ajax调用?
我已经创建了一个自定义帖子类型,但我不希望它有永久链接。默认情况下,输入帖子标题后,它会创建一个永久链接。我不需要生成它们。
根据我的阅读,据说自定义帖子类型将具有永久链接,并且没有办法禁用它。有没有一种方法可以阻止接收永久链接的ajax调用?
<?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;
}
作为WordPress documention 建议,只需关闭public
registered post类型的参数。
只有在未另行指定的情况下,才会关闭以下参数:
从\\u搜索中排除\\u可公开查询的\\u菜单中显示\\u,这样您就不会再使用单数,并且在管理和;“查看”;按钮也被隐藏。
附:选择的答案显示了在WordPress开发中不应该做的事情,很糟糕。由于存在WordPress builtin Post Type API 为此。因此,请考虑我的答案,因为它满足所有问题的要求,并且使用内置解决方案简单明了。
我在我的网站上有一个部分,需要一个页面列表,这些页面是特定ID的后代。我需要将它们列在子页面和孙子页面上。但是页面标题太长,所以我需要使用slug作为标题。我想我可以只使用wp\\u list\\u页面并专门调用此ID的后代,但wp\\u list\\u页面似乎没有办法列出slug而不是页面标题。此外,我必须使用str\\u替换段塞中的破折号。有人能告诉我从哪里开始吗?我最终使用了下面的,这没有更好的效果。。。有什么见解吗?function is_tree($pid) { global