<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Code Snippets Archives - Tino-Designs.com</title>
	<atom:link href="https://www.tino-designs.com/category/code-snippets/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.tino-designs.com/category/code-snippets/</link>
	<description>Webdesign, Webentwicklung, Medien und Kreativität</description>
	<lastBuildDate>Thu, 04 Apr 2024 19:40:20 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.tino-designs.com/wp-content/uploads/2022/12/favicon_350px.png</url>
	<title>Code Snippets Archives - Tino-Designs.com</title>
	<link>https://www.tino-designs.com/category/code-snippets/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress davon abhhalten die IP Adresse bei Kommentaren zu speichern</title>
		<link>https://www.tino-designs.com/wordpress-davon-abhhalten-die-ip-adresse-bei-kommentaren-zu-speichern/</link>
					<comments>https://www.tino-designs.com/wordpress-davon-abhhalten-die-ip-adresse-bei-kommentaren-zu-speichern/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 04 Apr 2024 19:11:20 +0000</pubDate>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.tino-designs.com/?p=2381</guid>

					<description><![CDATA[<p>Aufgrund der DSGVO und Datenschutzbestimmungen in der EU, ist es ohne aktive Opt-In Zustimmung des Nutzers&#8230;</p>
<p>The post <a href="https://www.tino-designs.com/wordpress-davon-abhhalten-die-ip-adresse-bei-kommentaren-zu-speichern/">WordPress davon abhhalten die IP Adresse bei Kommentaren zu speichern</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Aufgrund der DSGVO und Datenschutzbestimmungen in der EU, ist es ohne aktive Opt-In Zustimmung des Nutzers nicht erlaubt persönliche Daten des Nutzers zu speichern. Dazu gehört auch die IP Adresse. Wer den Hinweis für die IP Adresse umgehen möchte, kann sich damit helfen, die IP Adresse gar nicht erst zu speichern.<br><br>Die einfachste Möglichkeit die zu tun ist ein kleines bisschen PHP Code in die functions.php des WP Themes einzufügen. </p>



<p>Der folgende Code sorgt dafür, dass WP die IP Adresse bei Kommentaren nicht mehr speichert:</p>



<pre class="wp-block-code"><code>&lt;?php 
function wp_no_comments_ip( $comment_author_ip ) { return ''; } add_filter( 'pre_comment_user_ip', 'wp_no_comments_ip' );
?></code></pre>
<p>The post <a href="https://www.tino-designs.com/wordpress-davon-abhhalten-die-ip-adresse-bei-kommentaren-zu-speichern/">WordPress davon abhhalten die IP Adresse bei Kommentaren zu speichern</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.tino-designs.com/wordpress-davon-abhhalten-die-ip-adresse-bei-kommentaren-zu-speichern/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Datenschutz Checkbox für Wordpress Kommentare und Woocommerce Reviews</title>
		<link>https://www.tino-designs.com/datenschutz-checkbox-fuer-wordpress-kommentare-und-woocommerce-reviews/</link>
					<comments>https://www.tino-designs.com/datenschutz-checkbox-fuer-wordpress-kommentare-und-woocommerce-reviews/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 04 Jan 2024 19:36:00 +0000</pubDate>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.tino-designs.com/?p=2377</guid>

					<description><![CDATA[<p>Um in der EU eine datenschutzkonforme Kommentarfunktion auf Wordpress zu bekommen muss einiges beachtet werden. Vor&#8230;</p>
<p>The post <a href="https://www.tino-designs.com/datenschutz-checkbox-fuer-wordpress-kommentare-und-woocommerce-reviews/">Datenschutz Checkbox für Wordpress Kommentare und Woocommerce Reviews</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Um in der EU eine datenschutzkonforme Kommentarfunktion auf Wordpress zu bekommen muss einiges beachtet werden. Vor allem benötigt man für die Verarbeitung der Nurtzerdaten die Zustimmung des Nutzers. Eine solche Opt-In Checkbox, lässt sich mit folgenden Code in der functions.php Datei des genutzten WP Themes realisieren:</p>



<pre class="wp-block-code"><code>// Fügt die Funktion dem Standard WP Kommentar sowie dem Woocommerce Review Formular hinzu
function add_privacy_field_on_comment_form() {
   $req  = get_option( 'require_name_email' );
	$aria_req = ( $req ? " aria-required='true'" : '' );
        echo '&lt;div class="comment-form-datenschutz"&gt;&lt;input id="datenschutz" class="my-class" name="datenschutz" type="checkbox"' . $aria_req . ' /&gt;' .
	'&lt;label class="my-class" for="datenschutz"&gt;' . __( 'Mit der Nutzung dieses Formulars erklären Sie sich mit der Speicherung und Verarbeitung Ihrer Daten durch diese Website einverstanden. Des weiteren geben Sie uns die Einwilligung zur Veröffentlichung Ihres Kommentars und akzeptieren unsere &lt;a target="_blank" href="/datenschutz"&gt;Datenschutzerklärung.&lt;/a&gt;' ) . ( $req ? ' &lt;span class="required"&gt;*&lt;/span&gt;' : '' ) . '&lt;/label&gt;&lt;/div&gt;';
    }
    add_action( 'comment_form_logged_in_after', 'add_privacy_field_on_comment_form' );
    add_action( 'comment_form_after_fields', 'add_privacy_field_on_comment_form' );


//Prüft ob die Checkbock für den Datenschutz ausgewählt wurde 
add_filter( 'preprocess_comment', 'webshaped_verify_comment_meta_data' );
function webshaped_verify_comment_meta_data( $commentdata ) {
	// Wenn die Checkbox leer ist und ein Gastnutzer schreiben möchte...
	if ( empty( $_POST&#91;'datenschutz'] ) ) {
		// ... zeige folgenden Fehlertext an
		wp_die( __( '&lt;strong&gt;FEHLER&lt;/strong&gt;: Die Datenschutzbox wurde nicht akzeptiert.&lt;br&gt;&lt;br&gt;&lt;a href="javascript:history.back()"&gt;« Zurück&lt;/a&gt;' ) );
	}
	return $commentdata;
}</code></pre>
<p>The post <a href="https://www.tino-designs.com/datenschutz-checkbox-fuer-wordpress-kommentare-und-woocommerce-reviews/">Datenschutz Checkbox für Wordpress Kommentare und Woocommerce Reviews</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.tino-designs.com/datenschutz-checkbox-fuer-wordpress-kommentare-und-woocommerce-reviews/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Wie man Lazy Loading beim ersten Bild von jedem Wordpress Beitrag deaktiviert</title>
		<link>https://www.tino-designs.com/wie-man-lazy-loading-beim-ersten-bild-von-jedem-wordpress-beitrag-deaktiviert/</link>
					<comments>https://www.tino-designs.com/wie-man-lazy-loading-beim-ersten-bild-von-jedem-wordpress-beitrag-deaktiviert/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 05 Apr 2023 09:08:01 +0000</pubDate>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.tino-designs.com/?p=2328</guid>

					<description><![CDATA[<p>Die Optimierung Ihrer Website für Besucher sowie für Google und andere Suchmaschinen sind wichtige Aufgaben, wenn&#8230;</p>
<p>The post <a href="https://www.tino-designs.com/wie-man-lazy-loading-beim-ersten-bild-von-jedem-wordpress-beitrag-deaktiviert/">Wie man Lazy Loading beim ersten Bild von jedem Wordpress Beitrag deaktiviert</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die Optimierung Ihrer Website für Besucher sowie für Google und andere Suchmaschinen sind wichtige Aufgaben, wenn Sie es mit Ihrer Internetpräsentation ernst meinen.</p>



<p>Google bietet die Google Search Console an, um auf bestimmte Metriken hinzuweisen, die nach Ansicht von Google verbessert werden sollten. Eine dieser Metriken, die häufig vorkommen, heißt LCP. <a href="https://web.dev/lcp/" target="_blank" rel="noreferrer noopener">Largest contentful paint</a>. </p>



<p>LCP-Metriken messen die Renderzeit des größten Bild- oder Textblocks, der im Darstellungsbereich sichtbar ist. Also im Grunde das größte Element &#8222;above the fold&#8220;. Das ist ziemlich oft ein Bild, besonders bei Blogposts oder anderen inhaltsreichen Seiten.</p>



<p>Das Problem hier ist, dass WordPress ab Version 5.4 damit begann, alle Bilder der Seite per &#8222;Lazy Load&#8220; zu laden. Es handelt sich um eine Standardfunktion, die eine große Verbesserung darstellt. In diesem Fall wäre es jedoch besser, wenn das erste Bild des Inhalts nicht per Lazy Load geladen würde. Vor allem, wenn Ihre Website das erste Bild über dem Inhalt und damit sofort sichtbar &#8222;above the fold&#8220; anzeigt.</p>



<p>Der Grund dafür ist, dass Bilder, die verzögert geladen werden, etwas langsamer geladen werden. Daher ist der LCP-Score oft viel schlechter als er sein könnte. Googles <a href="https://pagespeed.web.dev/" target="_blank" rel="noreferrer noopener">Pagespeed Insights</a> schlägt tatsächlich vor, dass LCP BIlder nicht per Lazy Loading geladen werden sollten.</p>



<p>Da ich dieses Problem schon für mehrere Kunden hatte, habe ich mir einen einfachen Code zusammengestellt, der in die functions.php Ihres Wordpress-Themes eingefügt werden kann.</p>



<pre class="wp-block-code"><code>//function to get first image in post content area
function get_first_image() {
    global $post, $posts;
    $first_img = '';
    ob_start();
    ob_end_clean();
    $output = preg_match_all('/&lt;img&#91;^&gt;]*src="(&#91;^"]+)"/i', $post-&gt;post_content, $matches);
    $first_img = $matches &#91;1] &#91;0];

   //defines a default image if no image was found
    if(empty($first_img)){ 
        $first_img = "/images/default.jpg";
    }
    return $first_img;
}

// disable lazy loading for first image inside post content
function no_lazy_load_on_first_image( $value, $image, $context ) {
if ( 'the_content' === $context ) {

//uses above function to check if image is the first image of the content area
$image_url = get_first_image();

if ( false !== strpos( $image, '' . $image_url . '' )) {
return false;
}
}
return $value;
}
add_filter( 'wp_img_tag_add_loading_attr', 'no_lazy_load_on_first_image', 10, 3);</code></pre>



<p>Dieser Code verwendet tatsächlich zwei Funktionen und den WP-Filter &#8222;wp_img_tag_add_loading_attr&#8220;. Mit diesem Filter können wir ändern, wie Lazy Loading hinzugefügt wird.</p>



<p>Die erste Funktion findet das erste Bild innerhalb des aktuellen Beitragsinhalts. Die zweite Funktion überprüft einfach, ob das das Bild ist, das der Filter gerade durchläuft. Wenn dies der Fall ist, wird statt des regulären Werts false zurückgegeben.</p>



<p>Gerne könnt ihr den Code unten, verbessern, korrigieren und kommentieren.</p>
<p>The post <a href="https://www.tino-designs.com/wie-man-lazy-loading-beim-ersten-bild-von-jedem-wordpress-beitrag-deaktiviert/">Wie man Lazy Loading beim ersten Bild von jedem Wordpress Beitrag deaktiviert</a> appeared first on <a href="https://www.tino-designs.com">Tino-Designs.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.tino-designs.com/wie-man-lazy-loading-beim-ersten-bild-von-jedem-wordpress-beitrag-deaktiviert/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
