gpt4 book ai didi

wordpress - WP - 使用插件目录中的文件作为自定义页面模板?

转载 作者:行者123 更新时间:2023-12-02 19:59:14 24 4
gpt4 key购买 nike

插件目录中的文件是否可以用作自定义页面模板?

另外,如何让插件创建页面?

我正在为一个基于主题的客户开发一个插件,他希望这个插件能够制作销售页面,同时能够在主页上使用他的主题。这是我为他制作并推向市场的产品,因此需要通过插件实现自动化。

这可能吗?

编辑

我的插件主文件中有激活/停用 Hook ,但它不起作用。代码如下:

$filename = __FILE__;

register_activation_hook($filename, 'superActivation');
register_deactivation_hook($filename, 'superDeactivation');

global $myFile; global $fh; global $stringData; global $filename;

$myFile = "testFile.txt";
$stringData = "Testing\n";
$fh = fopen($myFile, 'w') or die("can't open file");

function superActivation() {
global $myFile; global $fh; global $stringData; global $filename;
fwrite($fh, $stringData);
fclose($fh);
}

function superDeactivation() {
$myFile = "testFile.txt";
unlink($myFile);
}

最佳答案

您可以使用 template_redirect Hook 来完成此操作。这是我的代码,如果模板文件夹中没有自定义帖子类型的模板,则将其手动替换为主题中的模板。将其放入您的插件文件中,然后在您的插件下放置一个名为 themefiles 的文件夹,其中包含您的默认主题文件。

//Template fallback
add_action("template_redirect", 'my_theme_redirect');

function my_theme_redirect() {
global $wp;
$plugindir = dirname( __FILE__ );

//A Specific Custom Post Type
if ($wp->query_vars["post_type"] == 'product') {
$templatefilename = 'single-product.php';
if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
$return_template = TEMPLATEPATH . '/' . $templatefilename;
} else {
$return_template = $plugindir . '/themefiles/' . $templatefilename;
}
do_theme_redirect($return_template);

//A Custom Taxonomy Page
} elseif ($wp->query_vars["taxonomy"] == 'product_categories') {
$templatefilename = 'taxonomy-product_categories.php';
if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
$return_template = TEMPLATEPATH . '/' . $templatefilename;
} else {
$return_template = $plugindir . '/themefiles/' . $templatefilename;
}
do_theme_redirect($return_template);

//A Simple Page
} elseif ($wp->query_vars["pagename"] == 'somepagename') {
$templatefilename = 'page-somepagename.php';
if (file_exists(TEMPLATEPATH . '/' . $templatefilename)) {
$return_template = TEMPLATEPATH . '/' . $templatefilename;
} else {
$return_template = $plugindir . '/themefiles/' . $templatefilename;
}
do_theme_redirect($return_template);
}
}

function do_theme_redirect($url) {
global $post, $wp_query;
if (have_posts()) {
include($url);
die();
} else {
$wp_query->is_404 = true;
}
}

关于wordpress - WP - 使用插件目录中的文件作为自定义页面模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4647604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com