Beiträge von bego

    Du kannst in die Sidebar Links integrieren, wie Du magst. Und natürlich können diese Links auch per Stylesheet beliebige Farben zugewiesen bekommen.

    Das Tag wp_list_categories() liefert als CSS-Selektoren leider nur cat-item (für alle), cat-item-# (wobei # die ID der jeweiligen Kategorie ist) und current-cat für die gerade angezeigte Kategorie.

    Es ist aber kein Problem, die ID der Kategorien zu ermitteln. Dazu gehst Du im Backend auf Kategorien, bewegst die Maus über die Kategorien und liest den Wert in der Statusleiste ab.

    Mit dem WP-Tag wp_list_categories() werden die in Deinem Blog verwendeten Kategorien aufgelistet. Dabei erhält jeder Eintrag eine eigene Klasse, z.B. "cat-item-7" für Kategorie 7.

    Mit Hilfe einer kleinen Erweiterung Deines Stylesheets bekommst Du die Kategorie farbig dargestellt:

    Code
    li.cat-item-7, 
    li.cat-item-7 a {
    color: #ff0000;
    background: #0000ff;
    }

    Meinst du die unter: wp-includes/js/jquery/ ? Wenn ja, welche?

    Das "eingebaute" jQuery lässt sich z.B. in der header.php ganz einfach durch

    PHP
    <?php wp_enqueue_script('jquery'); ?>
    <?php wp-head(); ?>

    nutzen (wichtig ist die Reihenfolge, also die Einbindung vor wp_head() ).

    Zitat
    PHP
    $("a").click(function(event){ alert("Hallo!"); });//hier Deine Funktion

    funktioniert bei mir bei allen Einbindungsarten.

    Damit es beim Laden von jQuery nicht zu Konflikten kommt, arbeitet jQuery im no conflict-Modus. Dies hat zur Folge, dass man die jQuery-Funktionen entweder so:

    PHP
    jQuery(document).ready(function($) {
        // $() funktioniert 
    });

    oder so:

    PHP
    (function($) {
        // $() funktioniert innerhalb dieser Funktion
    })(jQuery);

    einbetten muss.

    Zitat

    Diese Einbindungsart funktioniert:

    PHP
    <script type="text/javascript" src="jquery-1.4.2.min.js"></script>
    <script type="text/javascript">

    mehr schlecht als recht ...

    Die Nachteile dieser Form der Einbindung von jQuery werden hier beschrieben.

    Schau doch noch mal in den Codex. Vielleicht hast Du etwas übersehen?


    ... aber die Frage ist sowieso, warum nimmst du eine externe jQuery wenn doch WP schon eine mitbringt?

    Dafür sprechen mehrere Gründe:

    • Schnellere Reaktionszeit: Die CDN-Server von Google dürften schneller arbeiten, als mein Billig-Provider.
    • Weniger Transfervolumen auf dem eigenen Server
    • Caching: Der Besucher hat eher das immer wieder von Google kommende jQuery im Cache, als die Version von meinem Blog
    • Aktualität: durch die Verwendung von
    PHP
    wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '5.0');


    [INDENT]wird immer die aktuelle jQuery-Version geladen.
    [/INDENT]Ein Argument gegen die Verwendung von Googles CDN wäre, dass auch diese Webserver mal nicht erreichbar sein könnten. Aber, hey, das wäre doch auch mal eine tolle Erfahrung. ;-)

    Grundsätzlich setze ich jQuery nur so ein, dass die Website auch bei deaktiviertem JavaScript noch "funktioniert". Sie sieht dann eben nur nicht mehr so schnieke aus. Stichwort "unobstrusive javascript".


    Ok, jetzt kann ich natürlich nicht einfach das Stylesheet vom Theme TwentyTen abändern - ich muss jetzt in den Styles vom Plugin die vom Theme überschreiben.
    Dazu würde ich die Styles direkt in den Elementen definieren, da das vermutlich der einzige Weg ist sicher zustellen, das meine Styles nicht wieder überschrieben werden. Oder sehe ich das falsch?

    Seit WP 3.0 gibt es die Möglichkeit, so genannte Child Themes zu erstellen. Dabei schreibst Du Anpassungen eines Themes in einen eigenen Ordner. Vorteil: Wird das Theme erneut eingespielt (z.B. bei einem Update), bleiben Deine Anpassungen hiervon unberührt und werden eben nicht überschrieben.

    Es gibt bereits einige Anleitungen, die die Funktionsweise von Child Themes erläutern. (z.B. hier)

    Das mit CSS war mir bekannt, allerdings ist da nur der Rahmen außenrum abgerundet, nicht jedoch das Bild bzw. Foto an sich. Dazu müsste es wohl ein Hintergrundbild sein.

    Ups, da hab ich wohl was falsch verstanden.

    Zitat


    Ich habe die zweite Möglichkeit gerade ausprobiert, wenn ich meine Funktion so wie sie ist in den Header einsetze, verändern sich die Bilder nicht, ich befürchte ich spreche nicht die img nicht richtig mit meiner Funktion an.

    Änderung in der [FONT=Courier New]functions.php[/FONT] vorgenommen? jQuery-Aufruf geändert?

    Code
    [COLOR=#000000][COLOR=#0000BB]jQuery[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]document[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]ready[/COLOR][COLOR=#007700](function($){...[/COLOR][/COLOR]


    statt

    Code
    [COLOR=#000000][COLOR=#0000BB]$[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]document[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]ready[/COLOR][COLOR=#007700](function($){[/COLOR][/COLOR]

    ?

    Zitat


    ...
    Oder wie kann man ein span um die img legen?

    jQuery wäre da tatsächlich eine Möglichkeit.
    Versuch doch erst mal, jQuery generell einzubinden und dann z.B. ein einfaches alert() auszugeben (um zu testen, ob die Einbindung klappt).

    Du hast bei deinem Blog einen Container mit einer Breite von 1200 Pixeln angegeben. Bei meinem Bildschirm (1024 Pixel) hat das die unschöne Folge, dass ich laufend von links nach rechts scrollen müsste. Setz doch mal die Breite auf 960 Pixel.

    Die schwarze Schrift auf blauem Hintergrund ist mir vor allem in der horizontalen Navi nicht kontrastreich genug.

    Haftunsauschluss/Disclaimer dürfte juristisch kaum haltbar sein. Das solltest Du mal mit Deinem Rechtsanwalt besprechen (oder vielleicht gleich ganz weglassen).

    Zum einen könntest Du das mit Hilfe von CSS erreichen:

    Code
    img {
    width: 300px;
    height: 100px;
    padding: 20px;
    border:3px solid #ccc;
    left:10px;top:50px;
    -moz-border-radius:30px;
    -khtml-border-radius:30px;
    background: #fff;}

    Siehe "Tricks und Tipps: Rahmen mit abgerundeten Ecken"

    Was Deine jQuery-Funktion angeht:

    in die functions.php setzt Du

    PHP
    if( !is_admin()){
       wp_deregister_script('jquery');
       wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '');
       wp_enqueue_script('jquery');
    }

    um jQuery einzubinden. Anschließend setzt Du deine jQuery-Funktion in den Header:

    PHP
    <script type="text/javascript">
    jQuery(document).ready(function($){  
     
     $("a").click(function(event){ alert("Hallo!"); });//hier Deine Funktion
    
    
    });
    </script>

    Wer mit den zahlreichen Themes für WordPress nicht glücklich ist und vor der Entwicklung eines neuen Themes steht, hat verschiedene Möglichkeiten:


    • Er (sie) kann das "Rad neu erfinden" und von der ersten Zeile an alle notwendigen WP-Tags und -Funktionen aus dem Codex und dem einen oder anderen Fachbuch zusammen suchen (… mühsam!).
    • Er (sie) kann versuchen, das mitgelieferte Theme Twenty Ten auf die eigenen Bedürfnisse anzupassen. Dieses neue Theme bietet schon im Backend viele Möglichkeiten zur Anpassung (Auswahl eines anderen Headers oder Hintergrunds, individuelle Zusammenstellung von Widgets und Menüs) und spätestens mit Einführung der so genannten Child Themes kann man auch relativ "gefahrlos" die einzelnen php-Dateien des Themes editieren und an die eigenen Wünsche und Vorstellungen anpassen.
      Allerdings ist das neue Theme auch recht komplex und gerade Einsteiger dürften – trotz guter Kommentierung in den Dateien – recht schnell vor der Vielzahl von Tags, Funktionen und auch Abweichungen vom Standard kapitulieren ("alles so schön bunt hier").
    • Dritte Möglichkeit ist, auf ein einfacheres Theme, etwa das bis WP 2.9 gebräuchliche Default-Theme zurückzugreifen. Dieses Theme ist ebenfalls gut kommentiert und außerdem im Aufbau etwas übersichtlicher, als das neue Theme. Allerdings wird auch hier eine grundlegende Gestaltung bereits vorgegeben, was in einem Anfall übermäßiger Kreativität als leicht störend empfunden werden kann.
    • Vierte Möglichkeit ist die Verwendung eines so genanntes Blank Theme, in dem bereits das Gerüst mit allen notwendigen Tags, Funktionen, Templates für die unterschiedliche Darstellung von Seiten, Archiven, etc. sowie einem Style Sheet-Grundgerüst (inklusive reset.css) vorhanden sind, das sich aber in der Gestaltung sehr zurück nimmt und damit der Kreativität viel Platz lässt.


    Bisher habe ich als Blank Theme am liebsten Starkers verwendet.

    Der Code in diesem Theme ist sehr ordentlich strukturiert und ausgezeichnet dokumentiert. So enthält z.B. der [FONT=Courier New]<head>[/FONT]-Bereich gerade einmal 41 Zeilen, von denen 22 Zeilen aus Kommentaren bestehen.
    (Zum Vergleich: der <head>-Bereich von Twenty Ten hat 53 Zeilen bei 23 Zeilen Kommentar, wobei der Code komplexer strukturiert ist.)

    Durch die gute Kommentierung und den strukturierten Code ist die Anpassung an die eigenen Gestaltungswünsche vergleichsweise* einfach (*zur Erinnerung: auch hier gibt es auf der Tastatur keine "Wundertaste", die auf einen Schlag alle Aufgaben erledigt; Programmieren ist auch Handwerk).

    Starkers wurde inzwischen an WordPress 3.0 angepasst und besonders die [FONT=Courier New]functions.php[/FONT] hat viele (alle?) Elemente aus Twenty Ten übernommen. 499 Zeilen Programmiercode (Twent Ten: 403) erschließen sich dem Einsteiger nicht unbedingt beim ersten Anlauf, dürfen aber im Zweifelsfall einfach erst mal übernommen werden.

    Gestern Abend bin ich nun über ein Projekt gestolpert, dass es eigentlich schon seit geraumer Zeit gibt: Seit März 2007 arbeitet Dipl.-Ing. Frank Bültge, WordPress-Experte und -Buchautor, an einem eigenen Blank Theme, das er WP Basis Theme genannt hat. Diese Theme liegt seit März 2010 in Version 1.2.3. vor und kann kostenlos (GPL, Spenden erwünscht) von einer eigens eingerichteten Webseite herunter geladen werden.

    Im wesentlichen handelt es sich auch hier um ein Blank Theme, das sich rasch an die eigenen Gestaltungswünsche anpassen lässt. Gleichzeitig ist aber in dieses Theme sehr viel gebündeltes Know-how eingeflossen: Wer auf seiner Website etwa "ähnliche Beiträge" anhand der Kategorie oder Tags auflisten möchte oder eine BreadCrumb-Navigation anbieten will, erhält gleich die entsprechenden Tags mitgeliefert. E-Mail-Adressen können (um Spam-Bots zu ärgern) mit Hilfe der Unicode-Codierung verschlüsselt eingebunden, Tiny-URLs von Artikeln angeboten werden, uvm. – Die Liste der integrierten Funktionen umfasst 42 Punkte. Auf der Webseite (und einer beim Download mitgelieferten [FONT=Courier New]reame.html[/FONT]) sind Theme und Funktionen gut erläutert. Leider sind die Template-Dateien für meinen Geschmack etwas spärlich kommentiert.

    Anwender, die WordPress schon eine Weile nutzen, können mit Hilfe eines Basic Child Theme die Funktionsweise von Child Themes ausprobieren. Einen Blick in die Zukunkft bietet das mitgelieferte Child Theme basic-html5, das bereits die neuen HTML-Tags verwendet und mit Hilfe eines gleich mitgelieferten JavaScripts auch für ältere Browser abwärtskompatibel macht. (Hier lohnt sich übrigens auch ein Seitenblick auf das (englische) Projekt HTML5-Boilerplate.)

    Insgesamt macht das Basic Theme also einen sehr ausgereiften Eindruck und lädt zum Aufbau der nächsten Webseite ein. Höchste Zeit für eine Erwähnung in wordpress-deutschland.org (oder habe ich etwas überlesen?).

    Bego

    Gefällt mir gut.

    Kleine Änderungsvorschläge:

    • Brotschrift etwas kleiner und kontrastreicher
    • Impressum vervollständigen (Handelsgerister, USt-ID)


    Ist das ein Kundenauftrag? Dann wäre eine kleine Fotosammlung in der Mediathek für künftige Beiträge hilfreich.

    Wie lange hast Du an der Homepage gearbeitet (vom Entwurf bid zur Fertigstellung)?

    D.h., ich verlinke direkt auf die Bild-URL (also z. B. "http://www.fremd-domain.com/ordner/bildname.jpg") um keine urheberrechtlichen Probleme zu bekommen.

    IANAL, aber auf diese Weise dürften urheberrechtliche Probleme vorprogrammiert zu sein. Kurzgefasst: Dem Urheber eines Werkes steht das ausschließliche Recht der Verwertung zu. Dieses Recht kann er (in der Regel gegen Zahlung) auf Dritte übertragen.

    Wenn Du das Bild durch einen Link auf Deiner Homepage ohne ausdrückliche Genehmigung verwertest, verstößt Du auch gegen das Urheberrecht – egal, ob der Link mit "target=_blank" oder in einem Rahmen aus rosa Blümchen angezeigt wird. Der Urheber hat Recht auf eine angemessene Lizenzgebühr und ggf. Schadenersatz (z.B., wenn er gegen Zahlung einem Dritten ein exklusives Nutzungsrecht zugesagt hat und nun das Bild auf Deiner Homepage auftaucht). Kann teuer werden …

    Du solltest also entweder das Verwertungsrecht einholen (schriftliche Zusage, bei Hobbyfotografen, bzw. -Künstler vielleicht sogar kostenlos) oder aber auf die betreffende Internetseite (etwa http://www.fremd-domain.com) mit dem in Frage kommenden Bild verlinken.

    Wo hast Du denn wp_enqueue_script() verwendet?

    Ich habe folgendes in der functions.php:

    PHP
    if( !is_admin()){
           wp_deregister_script('jquery');
           wp_register_script('jquery', ("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false, '');
           wp_enqueue_script('jquery');
    }

    Die Zeilen wp_deregister_script() und wp_register_script() würden bei einer lokalen Installation ggf. wegfallen.

    In der header.php habe ich dann die jQuery-Funktion:

    PHP
    <script type="text/javascript">
    jQuery(document).ready(function($) {
    
    
    $("a").click(function(){
       alert("Hallo!");
     });
        
    });
    </script>

    Schau Dir mal in der [FONT=Courier New]functions.php[/FONT] Zeile 292 ff. an. Dort wird die Funktionsweise von the_excerpt so umgebogen, dass statt der Auslassungspunkte [Weiterlesen →] erscheint und der Auszug auch nur (sofern nicht vom Autor anders bestimmt) 40 (statt 55) Zeichen umfasst.

    Diese Änderungen lassen sich natürlich beliebig ändern. Statt

    Code
    return ' <a href="'. get_permalink() . '">' . __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) . '</a>';

    könnte man z.B.

    Code
    return ' <a href="'. get_permalink() . '">' . 'Neugierig geworden? <span class="meta-nav">&rarr;</span></a>';

    verwenden.

    Bego

    Jetzt hab ich ein wenig im Artisteer-Forum gestöbert (ich benutze Artisteer selber nicht) und bin auf folgendes gestoßen:

    Zitat

    Suche in der [FONT=Courier New]functions.php[/FONT] nach der funktion [FONT=Courier New]art_vmenu_items()[/FONT] und ersetze dort
    [FONT=Courier New]wp_list_pages('title_li=&sort_column=post_title');
    [/FONT] durch
    [FONT=Courier New]wp_list_pages('title_li=&sort_column=menu_order');
    [/FONT]

    Mit einem Link zum Blog könnte man etwas präziser antworten.So würde ich aber vorschlagen, dass Du in deinem Theme (vermutlich in der [FONT=Courier New]sidebar.php[/FONT]) nach dem Befehl [FONT=Courier New]wp_list_pages()[/FONT] suchst. Der richtige Befehl zum Sortieren nach der im Editor eingegebenen Reihenfolge lautet

    PHP
    <?php wp_list_pages('sort_column=menu_order'); ?>

    Bego

    Ganz bestimmt! Und höchstwahrscheinlich über einen kleinen Eingriff in das Stylesheet Deines verwendeten Themes. Wenn Du uns jetzt noch verrätst, welches Theme Du verwendest (am besten mit Angabe des Download-Links und – noch besser – Link zu Deinem Blog), werden die Antworten etwas präziser.

    Bego

    Vielleicht hilft eine kleine Begriffs-Definition:

    <head>-Bereich
    Bereich eines HTML- oder PHP-Dokuments mit Informationen über den Dateiinhalte, Erstellungsdatum, Autor, Web-Editor, etc.

    Header
    Auf allen Seiten einer Website wiederkehrende Kopfleiste, oft aus einem Logo und einem Titel bestehend.

    wp-head

    Hook, mit dessen Hilfe WordPress in den Header eingreifen kann

    header.php
    Im WordPress verwendete Datei mit (zumindest dem Anfang des) <head>-Bereichs, der Kopfleiste (Header) und dem Hook wp-head. Diese Datei wird durch die index.php (oder anderen Templates für die Anzeige von Seiten, Artikeln, Archiven, ...) mit dem Befehl get_header() aufgerufen. Es ist technisch kein Problem, das </head>-Tag erst in die index.php zu setzen, verwirrt aber manchen stolzen Besitzer einer Premium Themes.