Fehlermeldungen unterdrücken und loggen

In der wp-config.php

define('WP_DEBUG', false);

Ersetzen durch:

ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Log-Datei befindet sich in:

/wp-content/debug.log

Hier gibt es verschiedene Lösungsansätze:

  • Adminbereich -> Elementor -> Tab „Generell“: Alle erforderlichen Inhaltstypen anklicken.
  • Adminbereich -> Einstellungen -> Lesen: Falls unter Homepage- und Beitragsseite die gleiche Seite eingestelltsein sollte, eine nach Möglichkeit auf „Auswählen“ stellen.
  • Templatewechsel
  • Seite mit einem Elementortemplate abspeichern.

In der wp-config.php

define('WP_DEBUG', false);

ändern in

define('WP_DEBUG', true);

Dann „Übeltäter“ deaktiveren.

Dieses Plugin stützt sich auf einige veraltete Funktionen in Elementor.

Sie müssen alle Instanzen von

use Elementor\Scheme_Typography;

ersetzen. mit

use Elementor\Core\Schemes\Typography;

und

Scheme_Typography::

in

Typography::

Gleiches gilt für Scheme_Color.

PhpMyAdmin:

ALTER TABLE `#__menu_types` ADD COLUMN `client_id` int(11) NOT NULL DEFAULT 0;
UPDATE `#__menu` SET `published` = 1 WHERE `menutype` = 'main' OR `menutype` = 'menu';

Damit sind offenbar die geforderten Felder (wieder) vorhanden.

Was man auch noch probieren kann:

http://www.example.com/administrator/index.php?option=com_installer&task=database.fix

In der betreffenden Zeile die geschweifte Klammer durch eckige ersetzen.

Beispiel:

Got error 'PHP message: PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in...

Ersetze

$level = $matches[2]{0} == '=' ? 1 : 2;  

durch

$level = $matches[2][0] == '=' ? 1 : 2; 
  • Dubuggen anschalten und schauen, ob ein Plugin oder sonstiger Code den Fehler verursacht oder
  • Im Standardeditor von »Text« auf »Visuell« stellen oder
  • Gutenberg-Editor installieren, aktivieren und Standardeditor deaktivieren.

in dieser Zeile die if-Abfrage anpassen:

if(isset($name[0])) { 
	if ($important = $name[0] == '!') { $name = ltrim($name, '!'); }
}

Mögliche Ursachen:

  • missglücktes WordPress-Update
  • fehlerhaftes Plugin oder Theme
  • beschädigte Datenbank
  • Fehler in der wp-config.php (falsche Zugangsdaten)
    • Stimmen die Datenbank-Zugangsdaten?
    • Ist die Zeile „require_once(ABSPATH . ‚wp-settings.php‘);“ ganz unten vorhanden?
    • Stimmt der Tabellen-Präfix ($table_prefix)?
    • Ist der Key gültig?
define( 'AUTH_KEY',         'TJ&Lwf?3ya~cx)i  e%S~lZ+t#P8}P7,ox+;QmUvFEcyhMJx!lv<6>-VM9M05}[c' );
define( 'SECURE_AUTH_KEY',  'a%`_wL>c:6d^AP-`si>mh }w[>$lwny`VlM&)p{-kkzlfOohnMtF^KX9hmxpyvvc' );
define( 'LOGGED_IN_KEY',    'RT .y`_&YO>3?WS4aSiNpCIxL])BX3j?JgKa8yyKpO5O<Zs@5W+uw4ci@4tua4pc' );
define( 'NONCE_KEY',        'i=zNoJL{OD8hm9eKIE~8WPIVP>rEs1;9#g2?bg>!:+%^~t4B;#mTkABpA,,c90C0' );
define( 'AUTH_SALT',        'hHf`GF1%pMJk6]63SJ3396YP0V>R]G.ss;0v6GOn_xW>j3QsKxaxc:y*np/$2R@/' );
define( 'SECURE_AUTH_SALT', 'd),A.r{@K(,/yS7spQpj<@GKQ7^]1$Wg7jTBg=QMG3#0XONB9Y1W?c9d=N=o?36D' );
define( 'LOGGED_IN_SALT',   '8ZMCMqg=SXgy`,e@Cdozn+-dTWyDCb|~HjxUEWFedK?<Lbli(ayn~i0MAuUK;>c=' );
define( 'NONCE_SALT',       '2lyVbz/oMOo12cnECk3+W$6f(qiTYDF?I!7.H}])t6a#vnrtQ*]{#ME iiVB^Wi:' );

Auf wordpress.org kann man einen neuen Key generieren lassen:

https://api.wordpress.org/secret-key/1.1/salt/

Lösung 1: Einstellungen → Permalinks neu aufrufen oder auf Standard setzen.

  1. Cronjob einrichten, der die Seite zu einem früheren Zeitpunkt aufruft.