我刚刚移动了一个站点(通过导出和导入所有帖子和页面,并复制主题文件),在新站点上,各种页面和帖子模板无法在帖子和页面编辑屏幕上进行选择。
这些文件确实有Windows行结尾,这是我修复的,但这并没有消除问题。还有什么可以尝试的吗?
我刚刚移动了一个站点(通过导出和导入所有帖子和页面,并复制主题文件),在新站点上,各种页面和帖子模板无法在帖子和页面编辑屏幕上进行选择。
这些文件确实有Windows行结尾,这是我修复的,但这并没有消除问题。还有什么可以尝试的吗?
听起来可能是数据库和插件选项序列化的问题。我以前在使用xml导出移动站点时遇到过插件设置等问题。category templates插件将大量选项写入db,这些选项可能已损坏。
作为测试,请尝试创建一个php文件并将其放在主题根目录中。添加基本模板标题:
<?php
/*
* Template Name: Template Test
*/
?>
看看是否可以选择。如果您仍然可以访问旧站点/服务器,请尝试对数据库进行mysql转储,然后创建一个新的空白数据库并导入转储文件。
另外,您没有提到新老位置的服务器/托管环境。这些信息可能有助于调试问题。
还想提到的是,类别模板插件有问题,可能是也可能不是问题的原因。
该插件在其update\\u option()和get\\u option()调用中使用serialize和unserialize。WordPress已经对这些函数进行了序列化,请参见:http://andrewnacin.com/2010/04/18/wordpress-serializing-data/
如果您查看插件的前几行:
function cat_temp_menus() {
add_submenu_page(\'themes.php\',\'Category Templates\', \'Category Templates\', 8, basename(__FILE__), \'cat_temp_options_page\');
if (function_exists(\'add_meta_box\')) {
add_meta_box(\'cat_template_select\',\'Post Template\',\'cat_temp_meta\',\'post\',\'side\',\'low\');
}
}
add\\u submenu\\u page功能正在使用2.0版中不推荐使用的用户角色(8)。语法应为:<?php add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function ) ?>
它还使用basename(__FILE__)
作为管理菜单页面的slug,这是一个次要的安全问题。
$menu\\U slug注释请不要使用FILE 它造成了一个丑陋的URL,并且是一个较小的安全细微差别。(See Codex)
代码中的该行应为:
function cat_temp_menus() {
add_submenu_page(\'themes.php\',\'Category Templates\', \'Category Templates\', \'activate_plugins\', \'themes.php?page=cat_temp_options_page\', \'cat_temp_options_page\');
if (function_exists(\'add_meta_box\')) {
add_meta_box(\'cat_template_select\',\'Post Template\',\'cat_temp_meta\',\'post\',\'side\',\'low\');
}
}
所以我的答案是,问题很可能是插件,我的建议是要么重写它,要么找到另一个插件您提到了Windows线条端点。您是否从Windows主机移动到Linux主机?既然Windows和Linux都不关心大小写,那个么现在文件名的大小写会把你们搞糊涂吗?就像模板名称在设置(和数据库)中是大写的一样,但文件是小写的,并且对于Linux来说它们不是同一个文件,所以找不到它们?
我想试试这个。。。删除它,然后重新加载。
令人费解的事检查模板文件的权限,并确保wp content为755。在Linux设备上,文件应为Unicode无BOM。去掉模板文件头上方的任何空白。并查看页面模板是否在2010年出现,以排除管理员。
基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。