Themenentwicklung für einen Newbie

TL; DR, Skip to Trouble

Ich bin Programmierer und Webentwickler. Ich versuche, meine eigene kleine Business-Website zu starten, um meine Talente zu präsentieren. Daher habe ich Sub-Domains für jedes der wichtigsten Entwicklungs-Frameworks erstellt, mit denen ich Kunden-Websites entwickeln kann. Jeder von diesen wird erfolgreich ausgeführt.

  1. DotNetNuke – ASP.NET – Hauptseite
  2. Joomla
  3. CodeIgnitor / CakePHP
  4. WordPress
  5. Drupal
  6. PHPbb
  7. WikiMedia
  8. Custom – Fang alles für alles andere

Ich gebe zu, dass ich eine alte Schule bin. Früher habe ich Notepad / Kate bevorzugt und mache alles von Hand, aber ich verstehe, dass sich die Technologie ändert . Bis vor kurzem war ich wie jeder andere “Web-Typ” und würde ein vorgescanntes Thema kaufen, ein wenig Inhalt hinzufügen, sicherstellen, dass alles funktioniert und es weiterverkaufen. In dem Bemühen, nicht “Cookie Cutter” zu sehen, und nicht meine kleine Bankroll durch den Kauf von jemandes überteuertem Thema bankrott zu machen, entschied ich mich, meine Fähigkeiten zu zeigen, indem ich jede Subdomain selbst mische, was mich hoffentlich unterscheidet.


Nicht so einfach wie ich dachte

  • Ich ging zu _s und erstellte ein Starter Theme.
  • Ich wechselte zur Darkside, indem ich Bootstrap in mein Thema integrierte. Ich bin ein Hingucker für Augenschmaus, und ich wollte Knöpfe und Raster nicht von Hand neu erstellen, und die Technologie ändert sich .
  • Ich entschied mich für dieses Blog-Beispiel als Grundlage für mein kreatives Genie. Klar, ich weiß, aber ich fange langsam an.
  • Das Problem beginnt …

Ärger

Ich konvertierte den Code in der Vorlage in die WordPress Section Files (header.php, footer.php und sidebar.php) Hurdle 1 Jumped. Whoot.

Ich konnte den angepassten NavMenus nicht zum Laufen bringen, bis ich den BootstrapNavWalker Helper gefunden hatte . Hürde 2 gesprungen. Whoot.

Ich habe den folgenden Code den functionen PHP hinzugefügt, um einen Login-Link zu haben.

/** * Add Login/Logout to Menu */ function add_login_logout_link($items, $args) { if( $args->theme_location == 'primary' ) { $loginoutlink = wp_loginout('index.php', false); $items .= '
  • '. $loginoutlink .'
  • '; } return $items; } add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);

    Das funktioniert, aber ich wollte einen Button, also habe ich $items geändert in:

     $items .= '
  • ';

    Es hat funktioniert, dachte ich, während ich in Chrome entwickelte. Ich bin nach Hause gekommen und habe es in Firefox versucht:

    F: Der Button ist in Firefox sichtbar, aber das Klicken macht nichts. Wenn Sie auf Chrome klicken, wird die Anmeldeseite angezeigt. Was ist der richtige Weg, $items auszugeben $items damit die Schaltfläche und / oder alle Bootstrap-Elemente in jedem Browser funktionieren?

    F: Ich habe das obige Snippet ausgewählt, nachdem ich ein paar Dutzend Schnipsel von verschiedenen Orten gelesen habe. Als ich diese sah, sah ich einige, die die Ausgabepufferfunktionen verwendeten, und andere, die das nicht taten. Was ist der Vorteil, wenn functionen in den Puffer eingebunden werden, bevor sie an den Browser ausgegeben werden?

    Solutions Collecting From Web of "Themenentwicklung für einen Newbie"

    Sehen Sie sich Ihren Code an (da ich keinen Live Link sehe). Ich nehme an, dass Sie ein Anchor-Tag in einem Button-Tag ausgeben (wodurch der HTML-Code ungültig wird). Probieren Sie stattdessen die folgende function aus. Beachten Sie, dass ich den HTML-Code von Button zu Anchor-Tag geändert habe.

      /** * Add Login/Logout to Menu */ function add_login_logout_link($items, $args) { $redirect_to = home_url(); if( $args->theme_location == 'primary' ) { $loginoutlink = wp_loginout('index.php', false); $link = wp_logout_url($redirect_to); $label = 'Logout'; if(!is_user_logged_in()){ // user not logged in, show login url $link = wp_login_url( $redirect_to ); $label = 'Login'; } $items .= '
  • '. $label .'
  • '; } return $items; } add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);

    Ausgabepuffer verwenden

    Verwenden Sie Ausgabepuffer nur, wenn Sie müssen. Dies hat das Potenzial, ein ungewöhnliches Verhalten zu erzeugen. Hier ist ein Beispiel .