WordPress不允许更新插件或WordPress核心

时间:2020-01-20 作者:rohrl77

大约一个月前i can no longer update any plugins or wordpress core on my website. 当我试图更新网站时,它被打乱了。Jetpack然后在5-8分钟后为我重新激活网站。当它重新上线时,我在管理部分看到:

您的网站出现严重错误。请查看您的站点管理电子邮件收件箱以了解说明。

不幸的是,我没有收到那封电子邮件。因此,没有进一步的信息。

尽管存在这些问题,我可以继续发表文章,网站的其余部分也能如期工作。

我一直在阅读可能存在的问题,并认为这可能与我的webhosts设置(DigitalOcean)和目录权限有关。

我需要看什么来确定目录权限是否是问题所在?或者,让网站这样做可能会有什么问题?

更新:我已经看过error.log 我看到以下几行重复:

[Tue Jan 21 09:15:26.128769 2020] [fcgid:warn] [pid 16817] [client 52.9.128.29:42158] mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Call to undefined function get_header() in /var/www/clients/client1/web1/web/wp-content/themes/study-circle/index.php:13
[Tue Jan 21 09:15:26.128824 2020] [fcgid:warn] [pid 16817] [client 52.9.128.29:42158] mod_fcgid: stderr: Stack trace:
[Tue Jan 21 09:15:26.128832 2020] [fcgid:warn] [pid 16817] [client 52.9.128.29:42158] mod_fcgid: stderr: #0 {main}
[Tue Jan 21 09:15:26.128837 2020] [fcgid:warn] [pid 16817] [client 52.9.128.29:42158] mod_fcgid: stderr:   thrown in /var/www/clients/client1/web1/web/wp-content/themes/study-circle/index.php on line 13
索引。php代码在我看来很正常。。。

<?php
/**
 * The template for displaying home page.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the WordPress construct of pages
 * and that other \'pages\' on your WordPress site will use a
 * different template.
 *
 * @package Study Circle
 */

get_header(); 
?>
<div class="container">
     <div class="page_content">
        <section class="site-main">
             <div class="blog-post">
                    <?php
                    if ( have_posts() ) :
                        // Start the Loop.
                        while ( have_posts() ) : the_post();
                            /*
                             * Include the post format-specific template for the content. If you want to
                             * use this in a child theme, then include a file called called content-___.php
                             * (where ___ is the post format) and that will be used instead.
                             */
                            get_template_part( \'content\' );

                        endwhile;
                        // Previous/next post navigation.
                        the_posts_pagination();

                    else :
                        // If no content, include the "No posts found" template.
                         get_template_part( \'no-results\', \'index\' );

                    endif;
                    ?>
                    </div><!-- blog-post -->
             </section>

        <?php get_sidebar();?>     
        <div class="clear"></div>
    </div><!-- site-aligner -->
</div><!-- content -->
<?php get_footer(); ?>
以及get_header wp中的功能包括/通用模板。php:

function get_header( $name = null ) {
    /**
     * Fires before the header template file is loaded.
     *
     * @since 2.1.0
     * @since 2.8.0 $name parameter added.
     *
     * @param string|null $name Name of the specific header file to use. null for the default header.
     */
    do_action( \'get_header\', $name );

    $templates = array();
    $name      = (string) $name;
    if ( \'\' !== $name ) {
        $templates[] = "header-{$name}.php";
    }

    $templates[] = \'header.php\';

    locate_template( $templates, true );
}

2 个回复
最合适的回答,由SO网友:rohrl77 整理而成

最后,我自己解决不了这个问题。我雇佣了一位专门从事WP开发的自由职业者。事实证明,是一个插件(OptimizePress 2)导致了这个问题,然而,即使该插件被停用,问题仍然存在。这是怎么可能的,我不知道,也不能给出任何真正的技术细节。

我只是想回去报到。

SO网友:Rick Hellewell

除了查看收件箱中WP可能发送给您的任何消息(它们并不总是被发送),还要查看错误。站点根目录和wp admin文件夹中的日志文件。这将告诉您错误在哪里。

如果是插件,请暂时重命名该插件的文件夹,然后重试更新。您还可以重命名整个插件文件夹以临时禁用所有插件。您可能会考虑恢复到“二十个”主题之一来进行更新。

一旦您更新了WP(并更新了PHP版本,这可能也是问题所在;请联系您的托管地以获取相关说明),您就可以返回到旧主题。然后创建一个新的插件文件夹,并将每个插件文件夹分别移动到新的插件文件夹中。每次移动后,检查管理页面,并进行“更新”检查。对每个插件重复此操作。(并根据需要更新主题。)

您的问题显示了更新WP核心、主题和插件的重要性。这样问题就少了。(以及更新PHP版本的重要性。)

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。