Wordpress - Templates erstellen und anpassen: Unterschied zwischen den Versionen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | == Child | + | == Child Themes == |
| + | Siehe auch [[Wordpress - Child Themes]] | ||
| + | |||
http://codex.wordpress.org/Child_Themes | http://codex.wordpress.org/Child_Themes | ||
| − | Wichtig für Update Sicherheit | + | Wichtig für Update Sicherheit. In Child Themes kann man die Dateien des Parent-Themes einfach '''überschreiben'''. Alle Dateien die im Child sind werden statt dem des Parent Themes verwendet (außer die function.php). |
| + | |||
| + | Außerdem kannst du auch '''zusätzliche Template-Dateien''' einfügen. Wenn du für dein Child Theme z.B. eine eigene Homeseite nutzen möchtest, legst du einfach eine neue Template-Datei namens home.php in deinem Child Theme an. Beim Anlegen der Homeseite im Adminbereich, kannst du dann das Home-Template für diese Seite auswählen. | ||
| + | |||
| + | Wenn du eine eigene '''functions.php''' Datei für dein Child Theme anlegst, werden die Inhalte vor den Inhalten der functions.php Datei des Parent Themes aufgerufen. Auf diese Weise kannst du mit Hilfe der Child Theme Option zusätzliche PHP-Funktionen zu einem Theme hinzufügen. | ||
| + | |||
| + | == Tipps und Tricks == | ||
| + | === Loop an beliebiger Stelle === | ||
| + | Quelle: https://www.seedprod.com/wordpress-the-loop-shortcode/ (2015-01) | ||
| + | Hiermit kann man z.B. die letzten Posts an beliebiger Stelle auf einer Seite per Shortcode bereitstellen. | ||
| − | + | I went searching the other night for a WordPress loop shortcode. I was surprised to find that there were none out there, so I made one. Use this shortcode below to create a loop on a page , post , or sidebar (with some tweaks). Insert in your functions.php or you can create a plugin for it. I have a plugin where I put all my shortcodes and that works quite well. | |
| − | + | ||
| − | + | functions.php | |
<pre> | <pre> | ||
| + | // The Loop | ||
/* | /* | ||
| − | + | * Usage: loop category="news" query="" pagination="false" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
*/ | */ | ||
| − | < | + | |
| − | + | <?php | |
| − | + | add_shortcode("loop", "myLoop"); | |
| − | + | ||
| − | + | function myLoop($atts, $content = null) { | |
| − | + | extract(shortcode_atts(array( | |
| − | + | "pagination" => 'true', | |
| − | + | "query" => '', | |
| + | "category" => '', | ||
| + | ), $atts)); | ||
| + | |||
| + | global $wp_query,$paged,$post; | ||
| + | $temp = $wp_query; | ||
| + | $wp_query= null; | ||
| + | $wp_query = new WP_Query(); | ||
| + | if($pagination == 'true'){ | ||
| + | $query .= '&paged='.$paged; | ||
| + | } | ||
| + | if(!empty($category)){ | ||
| + | $query .= '&category_name='.$category; | ||
| + | } | ||
| + | if(!empty($query)){ | ||
| + | $query .= $query; | ||
| + | } | ||
| + | $wp_query->query($query); | ||
| + | ob_start(); | ||
| + | ?> | ||
| + | <ul class="loop"> | ||
| + | <?php have_posts()) : $wp_query->the_post(); ?> | ||
| + | <li><a href="" rel="bookmark"></li> | ||
| + | <?php endwhile; ?> | ||
| + | </ul> | ||
| + | <?php if($pagination == 'true'){ ?> | ||
| + | <div class="navigation"> | ||
| + | <div class="alignleft"><?php previous_posts_link('« Previous') ?></div> | ||
| + | <div class="alignright"><?php next_posts_link('More »') ?></div> | ||
| + | </div> | ||
| + | <?php } ?> | ||
| + | <?php | ||
| + | $wp_query = null; | ||
| + | $wp_query = $temp; | ||
| + | wp_reset_query(); | ||
| + | $content = ob_get_contents(); | ||
| + | ob_end_clean(); | ||
| + | |||
| + | return $content; | ||
} | } | ||
| − | |||
| − | == | + | ?> |
| + | </pre> | ||
| + | Eingebaut wird es dann im Editor auf diese Weise: | ||
| + | |||
| + | [loop category="news" query="" pagination="false"] | ||
| + | |||
| + | Wie man sieht, kann man die Kategorie wählen, die Paginierung ein und ausschalten und ggfs. den Loop noch erweitern. | ||
| + | |||
| + | |||
=== Kategorien auf Startseite ausschließen === | === Kategorien auf Startseite ausschließen === | ||
==== Über functions.php ==== | ==== Über functions.php ==== | ||
| Zeile 49: | Zeile 96: | ||
In Zeile 3 der oben markierten Codezeile fügst Du die ID’s der Kategorien ein, die Du von der Startseite ausschließen möchtest. Wenn Du nicht weißt, wie Du die ID Deiner Kategorien herausfindest, wird Dir 30-sekündiges Video sicherlich Licht ins Dunkle bringen: | In Zeile 3 der oben markierten Codezeile fügst Du die ID’s der Kategorien ein, die Du von der Startseite ausschließen möchtest. Wenn Du nicht weißt, wie Du die ID Deiner Kategorien herausfindest, wird Dir 30-sekündiges Video sicherlich Licht ins Dunkle bringen: | ||
| + | |||
| + | === Geändert Zeit statt erstellt Zeit für Posts anzeigen === | ||
| + | Für das Post Datum nutzt Wordpress die Variable ''the_time'' bzw. die Funktion ''get_the_time()'' | ||
| + | |||
| + | Normalerweise reicht es die Variable ''the_time'' mit ''the_modified_time'' zu ersetzen. | ||
| + | |||
| + | Relevante Dateien sind: | ||
| + | single.php | ||
| + | index.php | ||
| + | page.php | ||
| + | oder auch | ||
| + | functions.php | ||
Aktuelle Version vom 31. März 2015, 10:59 Uhr
Child Themes[Bearbeiten]
Siehe auch Wordpress - Child Themes
http://codex.wordpress.org/Child_Themes
Wichtig für Update Sicherheit. In Child Themes kann man die Dateien des Parent-Themes einfach überschreiben. Alle Dateien die im Child sind werden statt dem des Parent Themes verwendet (außer die function.php).
Außerdem kannst du auch zusätzliche Template-Dateien einfügen. Wenn du für dein Child Theme z.B. eine eigene Homeseite nutzen möchtest, legst du einfach eine neue Template-Datei namens home.php in deinem Child Theme an. Beim Anlegen der Homeseite im Adminbereich, kannst du dann das Home-Template für diese Seite auswählen.
Wenn du eine eigene functions.php Datei für dein Child Theme anlegst, werden die Inhalte vor den Inhalten der functions.php Datei des Parent Themes aufgerufen. Auf diese Weise kannst du mit Hilfe der Child Theme Option zusätzliche PHP-Funktionen zu einem Theme hinzufügen.
Tipps und Tricks[Bearbeiten]
Loop an beliebiger Stelle[Bearbeiten]
Quelle: https://www.seedprod.com/wordpress-the-loop-shortcode/ (2015-01) Hiermit kann man z.B. die letzten Posts an beliebiger Stelle auf einer Seite per Shortcode bereitstellen.
I went searching the other night for a WordPress loop shortcode. I was surprised to find that there were none out there, so I made one. Use this shortcode below to create a loop on a page , post , or sidebar (with some tweaks). Insert in your functions.php or you can create a plugin for it. I have a plugin where I put all my shortcodes and that works quite well.
functions.php
// The Loop
/*
* Usage: loop category="news" query="" pagination="false"
*/
<?php
add_shortcode("loop", "myLoop");
function myLoop($atts, $content = null) {
extract(shortcode_atts(array(
"pagination" => 'true',
"query" => '',
"category" => '',
), $atts));
global $wp_query,$paged,$post;
$temp = $wp_query;
$wp_query= null;
$wp_query = new WP_Query();
if($pagination == 'true'){
$query .= '&paged='.$paged;
}
if(!empty($category)){
$query .= '&category_name='.$category;
}
if(!empty($query)){
$query .= $query;
}
$wp_query->query($query);
ob_start();
?>
<ul class="loop">
<?php have_posts()) : $wp_query->the_post(); ?>
<li><a href="" rel="bookmark"></li>
<?php endwhile; ?>
</ul>
<?php if($pagination == 'true'){ ?>
<div class="navigation">
<div class="alignleft"><?php previous_posts_link('« Previous') ?></div>
<div class="alignright"><?php next_posts_link('More »') ?></div>
</div>
<?php } ?>
<?php
$wp_query = null;
$wp_query = $temp;
wp_reset_query();
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
Eingebaut wird es dann im Editor auf diese Weise:
[loop category="news" query="" pagination="false"]
Wie man sieht, kann man die Kategorie wählen, die Paginierung ein und ausschalten und ggfs. den Loop noch erweitern.
Kategorien auf Startseite ausschließen[Bearbeiten]
Über functions.php[Bearbeiten]
<pre'>
function exclude_category_home( $query ) {
if ( $query->is_home ) {
$query->set( 'cat', '-5, -34' );
}
return $query;
}
add_filter( 'pre_get_posts', 'exclude_category_home' );
In Zeile 3 der oben markierten Codezeile fügst Du die ID’s der Kategorien ein, die Du von der Startseite ausschließen möchtest. Wenn Du nicht weißt, wie Du die ID Deiner Kategorien herausfindest, wird Dir 30-sekündiges Video sicherlich Licht ins Dunkle bringen:
Geändert Zeit statt erstellt Zeit für Posts anzeigen[Bearbeiten]
Für das Post Datum nutzt Wordpress die Variable the_time bzw. die Funktion get_the_time()
Normalerweise reicht es die Variable the_time mit the_modified_time zu ersetzen.
Relevante Dateien sind:
single.php index.php page.php
oder auch
functions.php