Zurück   WordPress Deutschland Forum > Support > Installation

Antwort
 
Themen-Optionen Ansicht
Alt 21.07.2008, 16:59   #1 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
Permalinks und die nötigen Functions

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!
web4free ist offline   Mit Zitat antworten
Alt 21.07.2008, 21:59   #2 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
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:
PHP-Code:
$post = &get_post($id); 
Die Ausgabe von
PHP-Code:
echo $post->post_name
ergibt 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.
web4free ist offline   Mit Zitat antworten
Alt 22.07.2008, 10:26   #3 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.834
Irgendwo gabs die Frage (oder so ähnlich) letztens schon mal. Da wurde auf die Rewriting-Klasse hingewiesen:
Function Reference/WP Rewrite « WordPress Codex

Ansonsten kann man auch den Blog-header includieren, und hat dann alle WP-Funktionen zur Verfügung:
PHP-Code:
<?php require 'path/to/wordpress/wp-blog-header.php'?>
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist gerade online   Mit Zitat antworten
Alt 22.07.2008, 12:39   #4 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
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
web4free ist offline   Mit Zitat antworten
Alt 22.07.2008, 12:46   #5 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.834
Zitat:
Zitat von web4free Beitrag anzeigen
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.
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist gerade online   Mit Zitat antworten
Alt 22.07.2008, 13:06   #6 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
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-Code:
<?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_existsdirname(__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&ouml;tigt, bevor wir anfangen k&ouml;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 &rsaquo; 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-Code:
<?php
if (! isset($wp_did_header)):
if ( !
file_existsdirname(__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&ouml;tigt, bevor wir anfangen k&ouml;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 &rsaquo; 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:
PHP-Code:
include_once($DOCROOT 'bidgolicious/wp-blog-header2.php');
    echo 
the_permalink('Hallo lieber Tag'); 
Fehlermeldung:
PHP-Code:
Fatal errorCall to undefined function the_permalink() in /srv/www/web1/html/blocks/deinwissen.php on line 60 
web4free ist offline   Mit Zitat antworten
Alt 22.07.2008, 13:23   #7 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.834
Also nochmal, du sollst nur folgende Zeile in deiner bestehenden Seite einbauen:
PHP-Code:
<?php require 'path/to/wordpress/wp-blog-header.php'?>
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.
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist gerade online   Mit Zitat antworten
Alt 22.07.2008, 13:55   #8 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
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
PHP-Code:
require '/srv/www/web1/html/bidgolicious/wp-blog-header.php'
Das ist jetzt die ORIGINAL wp-blog-header.php
Fehlermeldung:
PHP-Code:
Fatal errorCall 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.
web4free ist offline   Mit Zitat antworten
Alt 22.07.2008, 14:10   #9 (permalink)
WPD-Team
 
Benutzerbild von marX
 
Registriert seit: 05.10.2006
Beiträge: 7.834
Zitat:
Zitat von web4free Beitrag anzeigen
Eingebunden wird Sie mittels
PHP-Code:
require '/srv/www/web1/html/bidgolicious/wp-blog-header.php'
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.

Zitat:
Fehlermeldung:
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:
Code:
/srv/www/web1/html/bidgolicious/wp-includes/classes.php
/srv/www/web1/html/bidgolicious/wp-includes/functions.php
/srv/www/web1/html/bidgolicious/wp-includes/plugin.php
__________________
FAQ // Codex // WP-Stuff // marcus.zelend.de
marX ist gerade online   Mit Zitat antworten
Alt 22.07.2008, 14:23   #10 (permalink)
PostRank: 0
 
Registriert seit: 21.07.2008
Beiträge: 7
Nö das Errorlog spuckt mir nur den selben fehler aus.
Auch wenn ich die
PHP-Code:
include_once( dirname(__FILE__) . '/wp-includes/classes.php'); 
zB. mittles ECHO ausgeben lasse
PHP-Code:
echo dirname(__FILE__) . '/wp-includes/classes.php'
bekomme ich die korrekte Pfadangabe.

Also von daher sollte es eigenlich keine Probs geben.
Ich schau derweil auch weiter...
web4free ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:34 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 | Impressum | Ein Inpsyde.com Projekt