如何为不存在的URL实现项目向导?

时间:2016-06-10 作者:orschiro

我非常喜欢Wikipedia\'s feature 要从尚未存在的URL创建文章,请执行以下操作:

enter image description here

我认为工作流程是这样的:

打开您要创建的站点的URL如果登录,通过将您转发给WP管理员,您可以使用一个按钮创建具有此URL段塞的页面。如果未登录,您只会看到404错误如何开始为此构建插件?

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

不知何故,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

SO网友:Andy Macaulay-Brook

我会在主题的404中加入一个is\\u user\\u logged\\u条件。php。然后,对于登录的用户,显示一个带有新slug的表单,作为一个隐藏或不可编辑的字段,该字段创建一个新页面,并重定向到该页面的管理编辑屏幕。

相关推荐

Altered Media Library URLs

我有一个客户的网站,是在他们离开另一家代理机构后我找到的。该机构使用了一个专有主题和自己的自托管页面生成器,以防止其在除他们之外的任何其他托管环境中更新或编辑。它的另一个方面是重新映射主题的URL并上载目录。因此,例如,代替WP在中查找主题文件http://domain.com/wp-content/themes/…. 它在里面找他们http://domain.com/t/….同样,对于图像上载,也可以在http://domain.com/wp-content/uploads/…, 它在里面找他们http