Hallo Forum,
Ich habe da ein sonderliches Anliegen.
Unsere WP Ver. ist die 2.2.1 und wir zeigen auf anderer Seite des Portals - ausserhalb von WP - die Titeln der Blogs an.
Da ich hier ja nicht mehr auf der WP Ebene bin musste ich mir 2 Funktionen heraussuchen, die mir die Titeln WP-konform umschreiben.
Die gefundenen:
function remove_accents($string)
function sanitize_title_with_dashes($title)
jeweils asu der "wp-includes/formatting.php"
Bis jetzt ist ja auch alles super gelaufen und die Verlinkungen waren tadellos in Ordnung - bis heute.
Der Titel des Blogs:
"Bidgo geht Kooperation mit Dailymotion.com ein"
WP ändert diesen zu:
"bidgo-geht-kooperation-mit-dailymotion-ein"
Meine 2 Funktionen hingegen machen ein:
"bidgo-geht-kooperation-mit-dailymotioncom-ein"
Also ein dailymotioncom statt nur einen dailymotion.
Kann mir jemand verraten, welche wichtige Funktion ich da noch vergessen habe?
Natürlich könnte ich hergehen und gewisse Zeichen im Titel untersagen.
Dazu müsste aber jeder Schreiber einen zentimeterdicken Block mit "Was darf ich" und "was darf ich nicht" eintragen vor sich liegen haben.
Hoffe es kann mir einer helfen!
Permalinks und die nötigen Functions
-
-
- Gerade eben
- 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)
-
Kann mir keiner helfen??
Ich hab jetzt mal versucht der Sache auf die Schliche zu kommen und stecke gerade in der Datei "wp-includes/link-template.php" fest.
Hier befindet sich - bei mir Zeile 66 - folgender Code:
Die Ausgabe vonergibt genau den Titel wie Ihn WP in der URL einsetzt.
Leider komme ich mit der Funktion get_post() nicht weiter um den Teil zu finden, der die URL so gekonnt umschreibt. -
Irgendwo gabs die Frage (oder so ähnlich) letztens schon mal. Da wurde auf die Rewriting-Klasse hingewiesen:
Function Reference/WP Rewrite « WordPress CodexAnsonsten kann man auch den Blog-header includieren, und hat dann alle WP-Funktionen zur Verfügung:
-
Hallo marX,
Danke für die Antwort,
leider wäre die einfachste Art - das includen der wp-blog-header.php - die schönste Art gewesen.
Aber er findet mir dann die wp() nimmer und auch Modifizierungen in der kopierten wp-blog-header.php hätten nix gebracht.
Wie auch immer habe ich heute die Order gegeben im Titel es tunlichst zu vermeiden etwas einzugeben was einer Domain ähnlich sein könnte.
Somit sollte dieses Problem auch nimmer auftauchen - hoffe ich.
Vielleicht werden wir irgendwie noch fündig, damit das Ganze dennoch so sauber wie in WP ablaufen kann.
lg.
Werner -
in der kopierten wp-blog-header.php hätten nix gebracht.
Kopierte wp-blog.header.php? Du musst schon die wp-blog-header.php der WP-Installation includen. Diese holt sich dann sämtliche Funktionen aus den weiteren WP-Dateien. Voraussetzung dafür ist natürlich, dass die WP-Installation über das Server-Dateisystem erreichbar ist. -
Hi,
Da ich nicht die originale Datei angreifen wollte habe ich diese kopiert und als wp-blog-header2.php gespeichert und diese modifizierte includet.
Wie schaut meine Originale funktionierende aus:PHP
Alles anzeigen<?php session_start(); include_once($_SERVER["DOCUMENT_ROOT"] . '/inc/inc.config.php'); include_once($DOCROOT . 'inc/inc.functions.php'); $debugtimestart = getmicrotime(); include_once($DOCROOT . 'inc/lang/'.$LANG.'/messages_global.php'); include_once($DOCROOT . 'inc/inc.filter_data.php'); if (! isset($wp_did_header)): if ( !file_exists( dirname(__FILE__) . '/wp-config.php') ) { if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = ''; else $path = 'wp-admin/'; include_once( dirname(__FILE__) . '/wp-includes/classes.php'); include_once( dirname(__FILE__) . '/wp-includes/functions.php'); include_once( dirname(__FILE__) . '/wp-includes/plugin.php'); wp_die("Die Datei <code>wp-config.php</code> scheint nicht zu existieren. Sie wird aber benötigt, bevor wir anfangen können. Brauchst Du weitere Hilfe? Bei <a class='glink' href='http://wordpress-deutschland.org/'>WordPress Deutschland</a> findest du eine <a class='glink' href='http://wordpress-deutschland.org/installation'>deutschsprachige Anleitung</a>. Eine <a class='glink' href='http://codex.wordpress.org/Editing_wp-config.php'>englischsprachige Anleitung</a> findest Du bei <a class='glink' href='http://wordpress.org/'>WordPress.org</a>. Du kannst die Datei <code>wp-config.php</code> auch <a class='glink' href='wp-admin/setup-config.php'>online erstellen</a>, das funktioniert jedoch nicht mit allen Servern. Die sicherste Methode ist es, die Datei manuell zu erstellen.", "WordPress › Error"); } $wp_did_header = true; wp(); gzip_compression(); include_once(ABSPATH . WPINC . '/template-loader.php'); endif; ?>
Zeile 2 bis 7 muß drinnen sein wegen dem restlichen Portal.
Da nun beim includen dieser Header eine Fehlermeldung rauskommt bzg. der session_start() - weil schon vorher Content ausgegeben wurde und weil er die wp(); nicht findet.
deswegen gab es eine Kopie dieser Header die dann so ausgesehen hat:PHP
Alles anzeigen<?php if (! isset($wp_did_header)): if ( !file_exists( dirname(__FILE__) . '/wp-config.php') ) { if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = ''; else $path = 'wp-admin/'; include_once( dirname(__FILE__) . '/wp-includes/classes.php'); include_once( dirname(__FILE__) . '/wp-includes/functions.php'); include_once( dirname(__FILE__) . '/wp-includes/plugin.php'); wp_die("Die Datei <code>wp-config.php</code> scheint nicht zu existieren. Sie wird aber benötigt, bevor wir anfangen können. Brauchst Du weitere Hilfe? Bei <a class='glink' href='http://wordpress-deutschland.org/'>WordPress Deutschland</a> findest du eine <a class='glink' href='http://wordpress-deutschland.org/installation'>deutschsprachige Anleitung</a>. Eine <a class='glink' href='http://codex.wordpress.org/Editing_wp-config.php'>englischsprachige Anleitung</a> findest Du bei <a class='glink' href='http://wordpress.org/'>WordPress.org</a>. Du kannst die Datei <code>wp-config.php</code> auch <a class='glink' href='wp-admin/setup-config.php'>online erstellen</a>, das funktioniert jedoch nicht mit allen Servern. Die sicherste Methode ist es, die Datei manuell zu erstellen.", "WordPress › Error"); } # $wp_did_header = true; # wp(); # gzip_compression(); # include_once(ABSPATH . WPINC . '/template-loader.php'); endif; ?>
leider aber mit dem selben Ergebnis dass ich keine Funktion erreiche.
Mein Beispiel:PHPinclude_once($DOCROOT . 'bidgolicious/wp-blog-header2.php'); echo the_permalink('Hallo lieber Tag');
Fehlermeldung: -
Also nochmal, du sollst nur folgende Zeile in deiner bestehenden Seite einbauen:
Den Pfad musst du natürlich zu deiner WP-Installation anpassen. Aber an der Blog-Header-Datei selbst dürfen keine Änderungen vorgenommen werden. (Wenn du die wp()-Funktion auskommentierst, dann wird WP natürlich nicht geladen, und es stehen dir dann natürlich auch keine WP-Funktionen zur Verfügung.) Nochmal: es muss die wp-blog-header.php der bestehenden WP-Installation includet werden, sonst funktioniert das Ganze nicht! Idealerweise bindest du die Datei ein, bevor die andere Seite irgendeine Ausgabe macht.Wenn sich dann nicht irgendwelche Funktionen in die Quere kommen, dann solltest du jetzt WP vollständig in deiner anderen Seite nutzen können.
the_permalink() funktioniert nur innerhalb eines Loop. Du suchst vermutlich eher get_permalink(), mit der numerischen Post-ID als Übergabeparameter.
-
Irgendwie bin ich scheinbar zu blöd dazu.
Ich habe jetzt die originale Header nur in der Datei includiert in der das Ganze auch notwendig wäre - leider genau die Satrtseite des ganzen Portales.
Eingebunden wird Sie mittels
Das ist jetzt die ORIGINAL wp-blog-header.php
Fehlermeldung:PHPFatal error: Call to undefined function wp() in /srv/www/web1/html/bidgolicious/wp-blog-header.php on line 22
Ich werde jetzt noch versucher herauszufinden worann es liegt, dass er mir absolut nicht die Funktion will. -
Okay, ausgehend davon dass dein WordPress dort installiert ist sollte es so eigentlich funktionieren. Ansonsten sollte ja ein Fatal Error geworfen werden, wenn er die wp-blog-header.php nicht findet.
ZitatFehlermeldung:
Fatal error: Call to undefined function wp() in /srv/www/web1/html/bidgolicious/wp-blog-header.php on line 22
Dann findet er die wp()-Funktion nicht. Möglicherweise werden die weiteren WP-Dateien nicht korrekt eingebunden.Schau doch mal im error.log des Servers nach, ob du Warnungen findest, die besagen, dass die folgenden Dateien nicht gefunden wurden:
-
Nö das Errorlog spuckt mir nur den selben fehler aus.
Auch wenn ich diezB. mittles ECHO ausgeben lasse
bekomme ich die korrekte Pfadangabe.
Also von daher sollte es eigenlich keine Probs geben.
Ich schau derweil auch weiter... -
Also wenn ich mir die Header genau ansehe werden die
/wp-includes/classes.php
/wp-includes/functions.php
/wp-includes/plugin.php
nur geladen, wenn die wp-config.php nicht vorhanden ist.
Gut so könnte er die wp() ja auch nicht finden.
Wenn ich aber schlau wie ich bin diese 3 Includes vor die Abfrage der wp-config.php gebePHP
Alles anzeigen<?php if (! isset($wp_did_header)): include_once( dirname(__FILE__) . '/wp-includes/classes.php'); include_once( dirname(__FILE__) . '/wp-includes/functions.php'); include_once( dirname(__FILE__) . '/wp-includes/plugin.php'); if ( !file_exists( dirname(__FILE__) . '/wp-config.php') ) { if (strpos($_SERVER['PHP_SELF'], 'wp-admin') !== false) $path = ''; else $path = 'wp-admin/'; wp_die("Die Datei <code>wp-config.php</code> scheint nicht zu existieren. Sie wird aber benötigt, bevor wir anfangen können. Brauchst Du weitere Hilfe? Bei <a class='glink' href='http://wordpress-deutschland.org/'>WordPress Deutschland</a> findest du eine <a class='glink' href='http://wordpress-deutschland.org/installation'>deutschsprachige Anleitung</a>. Eine <a class='glink' href='http://codex.wordpress.org/Editing_wp-config.php'>englischsprachige Anleitung</a> findest Du bei <a class='glink' href='http://wordpress.org/'>WordPress.org</a>. Du kannst die Datei <code>wp-config.php</code> auch <a class='glink' href='wp-admin/setup-config.php'>online erstellen</a>, das funktioniert jedoch nicht mit allen Servern. Die sicherste Methode ist es, die Datei manuell zu erstellen.", "WordPress › Error"); } $wp_did_header = true; wp(); gzip_compression(); include_once(ABSPATH . WPINC . '/template-loader.php'); endif; ?>schreit er mir wieder mit einer Fehlermeldung endgegen.
Dieses mal findet er dann die main() nicht.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!