如何添加空白的不可编辑的wp页面,如默认博客,用于插件

时间:2018-04-12 作者:Shaun Mc

Wordpress为您的博客提供了一个默认的、大多数情况下不可编辑的占位符页面。如何重新创建与此类似的页面以与插件一起使用?

访问wp中定义为博客页面的页面时,可以编辑基本信息,包括永久链接,但不能编辑内容。内容会被警告“您当前正在编辑显示最新帖子的页面”所覆盖

我可以在博客页面的posts表中看到这一行,但没有什么与众不同的地方。我知道这个博客。php特定脚本,但很难找到有关复制此类函数的开发人员信息

TIA公司

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

您可以通过挂接admin\\u init操作来完成此操作:

首先,您可以创建一个选项来选择为插件创建的页面。我想该选项将保存在wp_options 名称为的表your_plugin_special_page.

add_action( \'admin_init\', \'your_plugin_hide_editor\' );
function your_plugin_hide_editor() {

    // Get the Post ID
    if ( isset( $_GET[ \'post\' ] ) ) {
        $post_id = $_GET[ \'post\' ];
    } elseif ( isset( $_POST[ \'post_ID\' ] ) ) {
        $post_id = $_POST[ \'post_ID\' ];
    }
    if ( !isset( $post_id ) ) {
        return;
    }

    // Remove editor support
    if ( get_option(\'your_plugin_speical_page\') == $page_id ) {
        remove_post_type_support( \'page\', \'editor\' );
    }
}
然后,您可以使用管理员通知向用户显示您的消息(https://codex.wordpress.org/Plugin_API/Action_Reference/admin_notices)

希望这对你有所帮助!

SO网友:kero

使用page template? 您可以按照自己的意愿操作该页面的内容,用户可以通过一个简单的选项来选择它或不选择它。唯一缺少的是在后端禁用编辑器,这可以通过添加一些自定义JS来解决。

wpse很棒的模板。php

<?php
/*
Template Name: My awesome template
Template Post Type: page
*/
?>
启用页面模板功能(仅适用于页面,无其他(自定义)帖子类型)。在该模板中使用您想要的任何代码。

现在您已经拥有了基本功能,但用户仍然可以向其中添加内容(尽管您可以选择不显示)。为了解决这种混淆,您可以使用一些自定义JS隐藏内容区域。(有条件排队from this answer)

功能。php

<?php
add_action(\'admin_enqueue_scripts\', \'wpse1204_admin_enqueue\');
function wpse1204_admin_enqueue($hook) {
     wp_register_script(\'wpse-custom-template\', plugins_url(\'assets/custom-template.js\', __FILE__), array(\'jquery\'));

    // only enqueue for creating/editing pages
    if ( $hook == \'post.php\' && $screen->post_type == \'page\' ) {
        wp_enqueue_script(\'wpse-custom-template\');
    }
}
资源/自定义模板。js公司

(function($){
    var $template = $(\'#page_template\');
    var checkAndToggleContent = function() {
        // get currently selected template
        var selectedTemplate = $template.find(\'option:selected\').val();

        // if template is the one, hide content
        if (selectedTemplate == \'wpse-awesome-template.php\') {
            $(\'#postdivrich\').hide();
        }
        // otherwise show content (again)
        else {
            $(\'#postdivrich\').show();
        }
    };

    $(document).ready(function(){
        // do initial check if template is selected
        checkAndToggleContent();
        // if template selection changes, check again
        $template.on(\'change\', checkAndToggleContent);
    });
})(jQuery);
这段代码(作为一个整体)未经测试,但应该为您指明一个可能的方向。

结束

相关推荐

更新页面(update-core.php)和插件页面(plugins.php)恢复到主页

我在Wordpress网站的管理视图中收到通知,我有一个网站和插件的可用更新(在我的网络管理仪表板中,在“插件”和“更新”旁边的红色圆圈中有“1”)。。。但当我尝试同时转到“更新”页和;插件页面,是否显示主页?此时的URL为http:///wp-admin/network/update-core.php/和http:///wp-admin/plugins.php/分别地因此,我永远无法到达真正的更新页面,也无法更新我的Wordpress或插件。如何显示更新或插件页面?