Das Plugin AllPages soll alle Seiten aus allen Kategorien des Blog anzeigen.
PHP 8 und MySQL (Demo) - Dynamische Webseiten mit PHP und MySQL programmieren: Alles, was Sie dafür wissen müssen, steht in diesem Buch. Profitieren Sie von einer praxisorientierten Einführung und lernen Sie alle neuen Sprachfeatures von PHP 8 kennen. Die Autoren Christian Wenz und Tobias Hauser sind erfahrene PHP-Programmierer und Datenbankspezialisten.
Wichtiger Hinweis: Je nach verwendetem Werbenetzwerk, musst du hier einen geeigneten Hinweis anbringen, der dem Leser anzeigt, das du mit Affiliate-Marketing Geld verdienst (ggf. in den Teilnahmenbedingungen des betreffenden Werbepartners nachlesen).
Inhalt
Plugin AllPages
Das Plugin AllPages
zeigt alle Beiträge der Webseite an und kann als Vorlage für weitere Plugins diese Art dienen. Das Plugin verwendet den praktischen PHP-Befehl glob().
class AllPages
{
static function menue($dir)
{
$dpr = new Dipper();
foreach (glob($dir.'*', GLOB_ONLYDIR) as $file_name)
{
foreach (glob($file_name.'/*'.CONTENT_EXT) as $file_name)
{
if (!stripos($file_name, 'index'.CONTENT_EXT) && !preg_match('{_}', $file_name))
{
$file_link = str_replace(CONTENT_EXT,'',explode('/',$file_name)[1].'/'.explode('/',$file_name)[2]);
$file_content = file_get_contents($file_name);
$file_title = $dpr->parse(Page::meta($file_content))['Title'];
$file_description = $dpr->parse(Page::meta($file_content))['Description'];
$file_featured = $dpr->parse(Page::meta($file_content))['Featured'];
$file_logo = $dpr->parse(Page::meta($file_content))['Logo'];
echo '<div class="col-sm-3">';
echo '<img src="'.$file_logo.'" class="img-fluid w-50">';
echo '<p class=""><a href="/'.$file_link.'">'.$file_title.'</a></p>';
echo '<p class="fs-6">'.$file_description.'</p>';
echo '</div>';
}
}
}
}
}
Plugin AllPages
Möchtest du beispielsweise Beiträge eines bestimmten Autors anzeigen, dann erstelle eine Kopie dieses Plugins und nenne es zum Beispiel PagesByAuthor.php
(den Class-Name nicht vergessen) und passe den Code um eine Abfrage nach dem Autor an.
Klammere die echo
-Ausgabe mit der folgenden if
-Klausel ein, um nach dem Autor Max zu suchen:
...
if (isset($dpr->parse(Page::meta($file_content))['Author'])) // Field 'Author' exsist?
{
if ($dpr->parse(Page::meta($file_content))['Author'] == 'Max') // check
{
echo...
echo...
echo...
}
}
...
Anpassung für Autor-Abfrage
Hänge den Pluginaufruf in ein Template deiner Wahl mit der folgenden Befehlszeile ein:
<?php echo PagesByAuthor::menue(CONTENT_DIR); ?>
Übergabe eines Verzeichnis
Statt des Standardverzeichnisses CONTENT_DIR
kannst du auch ein ganz bestimmtes Verzeichnis dort übergeben, um in einer bestimmten Kategorie nach Beiträgen des Autors Max zu suchen.