不知何故,url必须明确这是一个可编辑的链接。所以你需要一个过滤器the_content
检查是否存在尚不存在的内部链接。或者,如果您让用户确定哪些链接是可编辑的,则需要检查他们提供的url是否已经存在。过滤器应在链接上设置一个类。以下是一个函数,用于确定是否已经存在缓动块:
function the_slug_exists($post_name) {
global $wpdb;
if($wpdb->get_row("SELECT post_name FROM wp_posts WHERE post_name = \'" . $post_name . "\'", \'ARRAY_A\')) {
return true;
} else {
return false;
}
}
现在,您将获得一个带有链接的页面,其中一些链接具有类
editable
. 您可以将javascript函数绑定到此类,这会阻止正常的链接行为。您甚至可以使用它为未登录的用户完全隐藏链接。登录的用户会得到一个小弹出窗口,询问他们是否要为链接创建页面。
弹出窗口中的“yes”(是)按钮不会将用户引导到url。相反,它接受slug并将其作为查询变量添加到new posts页面:http://www.example.com/wp-admin/post-new.php?slug=yournewpostslug
.
在您的functions.php
将操作添加到wp_insert_post
捕获查询变量并使用它填充编辑器中的字段。了解有关该方法的更多信息in @toscho \'s anwer here. 请注意,此时编辑器仍可能更改slug,因此您可能希望使用remove_meta_box