所以我拥有一家电脑维修店。我们有一个我们真正喜欢的销售点软件。有一个"检查维修状态"文件夹你可以在另一个网站上安装这个应用程序,我喜欢它的工作方式,但希望将它(deps.php,index.php,headerstatus.php,footerstatus.php,common.php)全部合并到一个文件中,这样我就可以在WordPress页面的post部分执行该php删除
<? php {php _code here} ?>
标记,并使用wordpress插件替换为[insert_php] {php code here} [/insert_php]
&#34;插入php&#34;只有这两个标签之间的代码才会在已发布的WordPress页面(inphp)中执行。
问题是它无法从那里到达另一个文件,它必须包含所有文件。由于wordpress页面不是物理位置而是来自DB的信息。从页面运行php会很好,所以我可以轻松地为box和div创建几个小的自定义类大小,然后在php中删除所有以前的自定义类和样式,并允许我们主题中的默认类/样式采取他们的我不能使用我们主题的默认css定义的地方和自定义样式/类(可能是内联的)。
那么我们可以使用命令来告诉索引从同一文件中引用这些函数,参数或命令的位置,而不是引用单独的文件吗?
require("deps.php"); require("headerstatus.php"); require("common.php");
require_once("footerstatus.php");
function showstatus() { require("deps.php"); require("headerstatus.php"); require("common.php");
因此,如果无法删除require,或使用require或其他命令指向其位置的本地化函数,行或路径。要么(注意我说可能,这段代码不需要完美,它需要从单个脚本运行并运行。我理解人们不喜欢推荐非标准的编程答案。)
从common,deps和php文件重写所需的每个项目以反映其寻找的数据类型需要做多少工作? 或者更有意义的是重写索引中的代码以更好地使用本地化函数?
问题是我需要这个工作,并且在网上找不到通常不是好兆头的例子。我对所有建议都持开放态度! 只是在这里抛出想法,如果你提出建议,请举例。
答案 0 :(得分:1)
执行此操作的最佳方法是保留要插入的应用程序的文件夹结构。这种方式路径应该仍然有效,它们是相对于文件的,所以应该仍然可以工作。
所以 1.在主题中创建一个名为“repairstatus”的新文件夹
将所有文件上传到 - index.php等
将以下代码放在主题functions.php中(或创建子主题
//1. add a wp query variable to redirect to
add_action('query_vars','plugin_set_query_var');
function plugin_set_query_var($vars) {
array_push($vars, 'is_repair_page'); // ref url redirected to in add rewrite rule
return $vars;
}
//2. Create a redirect
add_action('init', 'plugin_add_rewrite_rule');
function plugin_add_rewrite_rule(){
add_rewrite_rule('^repairstatus$','index.php?is_repair_page=1','top');
//flush the rewrite rules, should be in a plugin activation hook, i.e only run once...
//flush_rewrite_rules();
}
//3.return the file we want...
add_filter('template_include', 'plugin_include_template');
function plugin_include_template($template){
// see above 2 functions..
if(get_query_var('is_repair_page')){
//path to your template file
$new_template = get_stylesheet_directory().'/repairstatus/index.php';
if(file_exists($new_template)){
$template = $new_template;
}
// else needed? up to you maybe 404?
}
return $template;
}
现在导航到管理信息中心的设置,然后点击永久链接。只需点击保存按钮即可。在这个阶段测试,http://accuratepctech.com/repairstatus/应该打开index.php(目前看起来很有趣)..
现在修改index.php文件...我们需要做的就是注释掉headertatus和footerstatus需要,它们会打破html输出...
我们可以使用get_header()
加载wp网站的标头,该标头将加载css,导航等,并为页脚元素加载get_footer()
。
if (array_key_exists('func',$_REQUEST)) {
$func = $_REQUEST['func'];
} else {
$func = "";
}
//loads header and related
get_header();
function repairlookup() {
require("deps.php");
//require("headerstatus.php"); -->not needed, its only html
require("common.php");
//etc////////////
//find require("footerstatus.php") and remove
}
get_footer();
现在你应该有一个wp查看页面,index.php代码将被取消样式。您可以使用
添加css<link rel="stylesheet" type="text/css" href="style.css">
(注意这是html,关闭php标签来使用它)但是id建议你打开这个文件并复制到你主题中的style.css,然后你可以改变css以适应。
请注意,这可能会按原样运行,但可能存在错误,因此请仔细检查操作。我将推荐你google wpdb并更新以使用WP数据库功能(如果你愿意,你可以创建单独的表),否则你有2个数据库连接。这不会对网站的性能有好处,它可以加载1个用户,但3/4并发用户将开始减慢一切...