使用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);
这段代码(作为一个整体)未经测试,但应该为您指明一个可能的方向。