Externe CSS + Permalink = 404

  • Hallo an alle,

    ich habe folgendes Problem:
    Ich habe auf meiner Seite ein Stylesheet eingebunden, via Link im Head-Bereich versteht sich.
    Dies verlinkt absolut auf eine CSS-Datei die sich in /wp-content/themes/videotouch/css befindet.
    Die Permalinkstruktur ist auf /%sitename%/ eingestellt. Soweit klappt das auch alles.
    Gehe ich nun jedoch auf eine Unterseite, gibt mir Fireburg einen 404 für das Stylesheet. Es ist mir auch klar warum:
    Durch die Permalinkstruktur wird die Datei jetzt unter /*unterseite*/wp-content/themes/videotouch/css gesucht, wo sie natürlich nicht ist.

    Wie kann ich dieses Problem beheben?


    Liebe Grüße
    Ben

    Einmal editiert, zuletzt von bvelte (19. April 2016 um 10:35)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Du schreibst einerseits

    Dies verlinkt absolut auf eine CSS-Datei die sich in /wp-content/themes/videotouch/css befindet.


    und dann aber auch

    [COLOR=#333333]Durch die Permalinkstruktur wird die Datei jetzt unter /*unterseite*/wp-content/themes/videotouch/css gesucht[/COLOR]


    Das widerspricht sich mMn. Hast du die CSS nun absolut oder relativ eingebunden?

    Abgesehen davon ist deine Methode nicht Wordpress-Konform oder sehr veraltet. Früher hat man CSS so eingebunden:
    <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

    Besser ist aber heutzutage, das über die functions.php zu tun:

    PHP
    <?php
        add_action( 'wp_enqueue_scripts', 'add_theme_stylesheet' );
        /**
         * Add stylesheet to the page
         */
        function add_theme_stylesheet() {
            wp_enqueue_style( 'style-name', get_stylesheet_uri() );
        }
    ?>


    https://developer.wordpress.org/reference/func…_enqueue_style/

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Wenn du absolut verlinken willst, dann fange nicht erst bei /wp-content... an, sondern setze deine Domain davor. Falls du es nicht ganz so statisch haben willst, arbeite z.B. mit get_template_directory_uri():

    PHP
    function own_scripts_loader() {
      wp_enqueue_style('own-style', get_template_directory_uri() . '/css/style.css', array(), '', 'all' );
    }
    add_action('wp_enqueue_scripts', 'own_scripts_loader', 1);

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Hallo an euch Beide,
    danke schon mal für die raschen Antworten!

    Wenn du absolut verlinken willst, dann fange nicht erst bei /wp-content... an, sondern setze deine Domain davor.

    Mir fällt gerade selbst kein Grund ein, warum ich das nicht direkt gemacht habe. mit der kompletten URL funktioniert es nun problemlos.


    SirEctor: Ich scheine wohl noch etwas veraltet zu sein, aber gibt es gewisse Gründe, warum es so nicht mit WordPress konform sein sollte?

  • […] aber gibt es gewisse Gründe, warum es so nicht mit WordPress konform sein sollte?


    Schlichtes Beispiel aus der Praxis: WP-Installation mit nicht ganz wenigen PlugIns. Jedes PlugIn bringt sein eigenes CSS mit. Seit das CSS des Themes über die functions.php eingebunden ist, gibt es keine Probleme mehr mit fehlerhafter Darstellung aufgrund zu langsam / spät geladener CSS-Datei …

    Gruß
    helix

  • Ein Vorteil bei größeren Projekten, die mit mehreren CSS arbeiten, ist, dass man die Reihenfolge und die Abhängigkeiten (dependencies) festlegen kann. So wird eine CSS erst angefangen zu laden, wenn eine andere vollständig geladen ist.

    Zitat

    wp_enqueue_style($handle, $source, $dependencies, $version, $media);

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Hallo,

    vielen Dank für die Zahlreichen Antworten, hat mir sehr weiter geholfen!

    Nun fällt mir aber Folgendes auf:
    Erstelle ich einen neuen Beitrag hat dieser immer die URL *domain*/%sitename%/ und wird somit natürlich nicht aufgerufen.
    Ist denn der benutzerdefinierte Permalink /%sitename%/ nicht korrekt, oder wie kann ich das hier anpassen ?

    Danke und liebe Grüße

  • Meinst du wirklich /%sitename%/ oder eher /%postname%/? Sitename kenne ich als Permalink nicht.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Ich dachte mich daran zu erinnern, mal wo %sitename% gelesen zu haben, und da das für mich logisch erschien, ob mir den Namen der Unterseiten hinter Domain zu zeigen hab ich das eingetragen unter Benutzerdefinierte Permalinks... Es funktioniert ja auch, daher habe ich mir nichts gedacht... Würde es denn mit %postname% genauso funktionieren ?

  • Wie gesagt /%sitename%/ kenne ich nicht. Da in WP alles Posts sind, auch die Seiten, denke ich solltest du /%postname%/ testen. So wie du es beschreibst, ist es das was du suchst.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!