Wordpress在插件中替换args函数

时间:2017-06-04 15:37:59

标签: wordpress plugins

我正在尝试修改插件中调用的函数的参数。 插件中的原始代码

orplugin_load_template( 'templatefile.php', array(
        'post_type' => $post_type,
        'userdata' => wp_get_current_user(),
        'dashboard_query' => $dashboard_query,
        'post_type_obj' => $post_type_obj,
        'post' => $post,
        'pagenum' => $pagenum
    ) );

我在我的子主题中放置在functions.php中的试用版

function my_orplugin_load_template( 'mytemplatefile.php', array(
        'post_type' => $post_type,
        'userdata' => wp_get_current_user(),
        'dashboard_query' => $dashboard_query,
        'post_type_obj' => $post_type_obj,
        'post' => $post,
        'pagenum' => $pagenum
    ) );

add_filter(' orplugin_load_template',' my_orplugin_load_template',10);

我创建了自己的templatefile.php,名为mytemplatefile.php。我不知道在插件外存储此文件的位置。以及如何调用它来替换原始插件中的它。我想加载mytemplatefile.php来代替templatefile.php。怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

好点。你发给我正确的方向。我发现WP有一个标准的插件功能:

<?php load_template( $_template_file, $require_once ) ?>

[https://codex.wordpress.org/Function_Reference/load_template]。实际上插件有一个子文件夹模板,其中存储了template.php文件。我尝试使用我的改编的template.php文件,然后得到一些错误消息

if ( $overridden_template = locate_template( 'some-template.php' ) ) {
// locate_template() returns path to file
// if either the child theme or the parent theme have overridden the template
load_template( $overridden_template );
 } else {
   // If neither the child nor parent theme have overridden the template,
// we load the template from the 'templates' sub-directory of the directory this file is in
   load_template( dirname( __FILE__ ) . '/templates/some-template.php' ); 
}

有什么建议吗?