Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php on line 668 Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php on line 668 Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php on line 668 Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-theme.php on line 554 Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-theme.php on line 595 Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-theme.php on line 535 Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-theme.php on line 544 Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/comment-template.php on line 1739 Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-request.php on line 952 Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-request.php on line 972 Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-request.php on line 984 Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-request.php on line 995 Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 151 Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 175 Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 164 Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 186 Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 138 Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 75 Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 89 Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 110 Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 127 Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp-block-list.php on line 199 Deprecated: Optional parameter $type declared before required parameter $wrapper is implicitly treated as a required parameter in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/class-fs-logger.php on line 145 Deprecated: Return type of FS_Key_Value_Storage::offsetExists($k) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 309 Deprecated: Return type of FS_Key_Value_Storage::offsetGet($k) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 317 Deprecated: Return type of FS_Key_Value_Storage::offsetSet($k, $v) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 301 Deprecated: Return type of FS_Key_Value_Storage::offsetUnset($k) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 313 Deprecated: Return type of FS_Key_Value_Storage::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 328 Deprecated: Return type of FS_Key_Value_Storage::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 339 Deprecated: Return type of FS_Key_Value_Storage::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 350 Deprecated: Return type of FS_Key_Value_Storage::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 362 Deprecated: Return type of FS_Key_Value_Storage::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 375 Deprecated: Return type of FS_Key_Value_Storage::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/addons-for-elementor/freemius/includes/managers/class-fs-key-value-storage.php on line 389 Deprecated: Return type of WPCF7_FormTag::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/contact-form-7/includes/form-tag.php on line 395 Deprecated: Return type of WPCF7_FormTag::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/contact-form-7/includes/form-tag.php on line 387 Deprecated: Return type of WPCF7_FormTag::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/contact-form-7/includes/form-tag.php on line 381 Deprecated: Return type of WPCF7_FormTag::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/contact-form-7/includes/form-tag.php on line 399 Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/contact-form-7/includes/mail.php on line 162 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: Optional parameter $errors declared before required parameter $instance is implicitly treated as a required parameter in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/so-widgets-bundle/widgets/contact/contact.php on line 916 Deprecated: Creation of dynamic property Elementor\Plugin::$icons_manager is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-content/plugins/elementor/includes/plugin.php on line 605 Deprecated: DateTime::__construct(): Passing null to parameter #1 ($datetime) of type string is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/script-loader.php on line 331 Deprecated: Creation of dynamic property POMO_FileReader::$is_overloaded is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 21 Deprecated: Creation of dynamic property POMO_FileReader::$_pos is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 22 Deprecated: Creation of dynamic property POMO_FileReader::$_f is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/streams.php on line 153 Deprecated: Creation of dynamic property MO::$_gettext_select_plural_form is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/pomo/translations.php on line 293 Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/class-wp.php on line 173 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php on line 3031 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 Warning: Cannot modify header information - headers already sent by (output started at /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/wp-db.php:668) in /mnt/web605/e0/76/51697076/htdocs/projects/maquire/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1637 {"id":1754,"date":"2019-12-17T15:54:34","date_gmt":"2019-12-17T14:54:34","guid":{"rendered":"https:\/\/www.maquire.de\/?p=1754"},"modified":"2020-01-16T17:30:27","modified_gmt":"2020-01-16T16:30:27","slug":"zufallszitate-mit-wordpress","status":"publish","type":"post","link":"https:\/\/www.maquire.de\/zufallszitate-mit-wordpress\/","title":{"rendered":"PlugIn f\u00fcr WordPress erstellen"},"content":{"rendered":"\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\nDeprecated: Optional parameter $content declared before required parameter $tag is implicitly treated as a required parameter in \/mnt\/web605\/e0\/76\/51697076\/htdocs\/projects\/maquire\/wordpress\/wp-content\/plugins\/addons-for-elementor\/includes\/widgets\/pricing-table.php on line 33\n\t\t
\n\t\t\t\t
\n\t\t\t\n\t
\n\t\t

Eramus quod estis - eritis quod sumus (Was ihr seid, das waren wir - was wir sind, das werdet ihr.)<\/p>\n\t\t

\n\t\t\t\n\t\t\t\tFriedhof \u00d6jemdorf - Grabfeld 318\t\t\t\t\t\t\t<\/cite>\n\t\t<\/p>\n\t<\/blockquote>\n\n\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t\t
Das WordPress-Plugin Trancelantic Random Citation<\/b> zeigt ein Zufallszitat aus der Trancelantic Zitate Datenbank mit Hilfe eines Shortcodes auf einer WordPress-Webseite an. Es ist einfach und \u00fcbersichtlich aufgebaut mit einer klaren Schichtentrennung und einer interessante Datenhaltung. Alles selbsterkl\u00e4rend kommentiert. Einfach mal ein kurzes Statement anzeigen. Oder als Blaupause f\u00fcr den eigenen kleinen Helfer benutzen.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Download das aktuelle Trancelantic Random Citation WordPress Plugin.<\/a><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Als Datenquelle nutze ich unsere Trancelantic Zitate Datenbank. Die Sammlung wurde bereits \u00fcber mehrere Jahre von uns gefuttert. Und sie w\u00e4chst und w\u00e4chst und w\u00e4chst. \u00dcber sie erhalten wir ein JSON-String mit einem Zufallszitat. Realisiert ist diese API \u00fcbrigens unserem Trancelantic Corinth Framework. Wer seine eigene Datenbank mit API aufbauen will sollte sich das mal genauer anschauen.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Mehr Informationen \u00fcber das Trancelantic Corinth Framework.<\/a><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Aufbau des Plugins<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t

Das Plugin besteht aus den n\u00f6tigsten Dateien. Wichtig ist (f\u00fcr mich) eine klare Trennung der Views vom Controller. Damit ist der ganze HTML und CSS-Code jeweils separat in einer Datei. Die Logik \u00fcbernimmt die \u00fcbergeordnete PHP-Datei.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\"\"\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Das Plugin-Verzeichnis trancelantic_random_citation<\/code> und die Haupt-Plugin-Datei trancelantic_random_citation.php<\/code> haben den gleichen Namen. Aus diesem Verzeichnis sp\u00e4ter einfach eine Zip-Datei mit denselben Namen\u00a0trancelantic_random_citation.zip<\/code> als Installationspaket generieren. Abschlie\u00dfend die Zip-Datei im WordPress-Adminbereich hochladen und aktivieren.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Aufbau der Views und der CSS<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Die Views werden von der Plugin-Steuerung programmatisch included. Die random.php<\/code> zeigt nur den Inhalt des Arrays\u00a0$citation<\/code>\u00a0an und packt ein bisschen HTML rings herum. Ist dieses Array leer, gibt es einen Hinweis. Bei Interesse bitte selber die Datei anschauen. Die css.php<\/code> macht den ganzen Spa\u00df noch ein bisschen schicker. Sie wird final am Ende des Skripts mit eingeh\u00e4ngt. Interessant wird aber erst die Plugin-Steuerung.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Die Plugin-Steuerung<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Die Datei trancelantic_random_citation.php<\/code> \u00fcbernimmt die Hauptsteuerung und wird von WordPress als einziges aufgerufen. Wenn mehr Dateien ben\u00f6tigt werden, muss man diese selber includen. WordPress ben\u00f6tigt ein paar Informationen, wie Name, Version und eine Beschreibung. Der Name der Haupt-Datei und der Eintrag Text Domain<\/code> m\u00fcssen identische sein: Text Domain: trancelantic_random_citation<\/code>.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Eine gro\u00dfe Sicherheitsl\u00fccke besteht darin, dass jemand von Aussen dieses Plugin ausf\u00fchren kann. Das wird mit defined('ABSPATH') or die<\/code> verhindert. So kann nur WordPress die Plugin-Logik ausf\u00fchren.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n  \ndefined('ABSPATH') or die(\"Thanks for visting\");\n\n\/*\n* Plugin Name: Trancelantic Random Citation\n* Plugin URI: http:\/\/www.trancelantic.com\n* Description: WordPress plugin to show random citation provided by Trancelantic Citation Database.\n* Version: 1.0\n* Author: Wilfried Katschmarz\n* Author URI: http:\/\/www.trancelantic.com\n* License: GPL2\n* License URI: https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\n* Text Domain: trancelantic_random_citation\n*\/\n  <\/code>\n<\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Datenhaltung nach Singleton-Art<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Hier wird gew\u00e4hrleistet, das nur bei Zugriff auf die Daten diese von der URL geladen werden. Und das auch nur einmal. Danach werden die lokalen Daten benutzt. Ist das Daten-Array leer, dann ist irgendwo auf dem Weg ein Fehler aufgetreten. Ein weiteres Nachladen wird hier vermieden. Die View \u00fcbernimmt sp\u00e4ter die Auswertung.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n  \ndefine('TLRC_URL', 'http:\/\/api.citations.trancelantic.com\/');\n\n\/*\n* Local stored random citation.\n* Use always tlrc_get_random_citation() to trigger loading\n*\/\n$tlrc_random_citation;\n\t\n\/*\n* Will load random citation from url and store it local.\n* If you have allready loaded a random citation you will get the local stored citation.\n* On error you will get an empty array.\n*\/\nfunction tlrc_get_random_citation() \n{\n\tglobal $tlrc_random_citation;\n\n\tif (is_null($tlrc_random_citation)) \n\t{ \n\t\t$tlrc_random_citation = array();\n\t\t$headers = @get_headers(TLRC_URL); \n\t\t  \n\t\t\/\/ Use condition to check the existence of URL \n\t\tif ($headers && strpos($headers[0], '200'))\n\t\t{ \n\t\t    $json = file_get_contents(TLRC_URL);\n\t\t\t$rawData = json_decode($json, true);\n\n\t\t\tif (array_key_exists(\"Citation\", $rawData))\n\t\t\t{\n\t\t\t\t$tlrc_random_citation = $rawData['Citation'];\n\t\t\t}\n\t\t} \n\t} \n\n\treturn $tlrc_random_citation;\n}\n  <\/code>\n<\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Views einbinden<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Die Funktion tlrc_get_random_citation_view<\/code> \u00fcbernimmt die Anzeige des Zitats. Wenn keine Argumente \u00fcbergeben worden sind, dann wird die View angezeigt. Ist in den Argumenten der Eintrag key<\/code> vorhanden, wird der spezielle Wert ausgegeben (Zitat, Author oder Jahr).<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n  \n\/*\n* Will show blockquote random citation view if no args defined.\n* If arg contains key you will get specific citation data (citation, author or year).\n*\/ \nfunction tlrc_get_random_citation_view($arg) \n{\n\t$citation = tlrc_get_random_citation();\n\n\t\/\/ Looking for key in arguments with content\n\tif (is_array($arg) && array_key_exists('key', $arg) && $arg['key'] != '')\n\t{\n\t\tif (empty($citation))\n\t\t{\n\t\t\treturn 'TLRC-Error: Cannot load random citation.<\/code>';\n\t\t}\n\t\telse\n\t\t{\n\t\t\t$key = $arg['key'];\n\n\t\t\tif (array_key_exists($key, $citation))\n\t\t\t{\n\t\t\t\treturn $citation[$key];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn 'TLRC-Error: Unknwon citation key ('.$key.').<\/code>';\n\t\t\t}\n\t\t}\n\t}\n\telse\n\t{\n\t\t\/\/ No arguments or missing key or empty key\n\t\tob_start();\n\t\tinclude 'views\/random.php';\n  \t\treturn ob_get_clean();\n\t}\n}\n\n\/*\n* Add Shortcode for tlrc_data.\n*\/\nadd_shortcode( 'tlrc_data', 'tlrc_show_random_citation' );\n  <\/code>\n<\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

CSS-Datei einbinden<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Ganz zum Schluss muss noch die CSS-Datei eingebunden werden. Das Einbinden eines Styles ist optional. Wenn die Style-Datei nicht eingebunden wird, dann wird das aktuelle WordPress-Template benutzt.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n  \n\/*\n* Will show css file for random citation.\n*\/\nfunction tlrc_show_random_citation_css_view() \n{\n\tinclude 'views\/css.php';\n}\n\n\/*\n* Hock css file on building header.\n*\/\nadd_action( 'wp_head', 'tlrc_show_random_citation_css_view' );\n  <\/code>\n<\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t

Shortcodes in WordPress ver\u00f6ffentlichen<\/h3>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Zum Anzeigen des Zitats auf der Webseite m\u00fcssen noch die Shortcodes ver\u00f6ffentlicht werden. Daf\u00fcr die Shortcodes in ein\u00a0Shortcode-Widget oder ein Textfeld eintragen.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t[tlrc_data key=\"Citation\"]<\/code> zeigt das Zitat.
\n[tlrc_data key=\"Author\"]<\/code> zeigt den Autor.
\n[tlrc_data key=\"Year\"]<\/code> zeigt zeigt das Jahr.\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Eramus quod estis - eritis quod sumus (Was ihr seid, das waren wir - was wir sind, das werdet ihr.)
Friedhof \u00d6jemdorf - Grabfeld 318
<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Unser Plugin hat noch ein Widget und ist Mehrsprachig. Es ist dennoch \u00e4hnlich einfach aufgebaut. Teilweise objektorientiert Abstrahiert, aber immer noch einfach genug um die Grundfunktionen kennenzulernen. Einfach runterladen und anschauen..<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t[tlrc_citation]<\/code> zeigt die View mit einfachen HTML-Blockquotes.\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t
\n\t\t

Eramus quod estis - eritis quod sumus (Was ihr seid, das waren wir - was wir sind, das werdet ihr.)<\/p>\n\t\t

\n\t\t\t\n\t\t\t\tFriedhof \u00d6jemdorf - Grabfeld 318\t\t\t\t\t\t\t<\/cite>\n\t\t<\/p>\n\t<\/blockquote>\n\n\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t\t
Download das aktuelle Trancelantic Random Citation WordPress Plugin.<\/a><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
Das war’s.<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"

Einfaches Plugin f\u00fcr WordPress zur Anzeige von Zufallszitaten.<\/p>\n","protected":false},"author":1,"featured_media":1665,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[39,38,37],"_links":{"self":[{"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/posts\/1754"}],"collection":[{"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/comments?post=1754"}],"version-history":[{"count":118,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/posts\/1754\/revisions"}],"predecessor-version":[{"id":2324,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/posts\/1754\/revisions\/2324"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/media\/1665"}],"wp:attachment":[{"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/media?parent=1754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/categories?post=1754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.maquire.de\/wp-json\/wp\/v2\/tags?post=1754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}