Hi Gustafsson,
vielleicht findest Du hier eine Anregung:
Multi-(Sub)Domain-WordPress @ Open Sourced Brain.
Man kann mit wenig Aufwand mit einer Wordpressinstallation mehrere Blogs/Datenbanken/Subdomains verwalten...
Beiträge von Webrocker
-
-
Hallo,
seit dem Update auf 2.0.7 aktualisiert sich mein Cache nicht mehr, wenn ein neuer Kommentar geschrieben wird - hat das jemand auch schon in seinem Blog beobachtet?
Ich bin mir nicht sicher, ob es auch bei 2.0.6 nicht ging, bei 2.0.5 wurde aber definitiv die Seite neu gecachet nach einem neuen Kommentar.gruss + dank
Tom -
Hallo Koto,
die Permalinks funktionieren auch bei Strato, allerdings mit einer Einschränkung: Da bei Strato kein mod_rewrite benutzt werden kann, muss in den WP-Optionen die Permalinkstruktur so eingetragen werden, dass sie mit index.php beginnt. Dann ist hierfür kein mod_rewrite und auch keine weitere Änderung in der .htaccess notwendig.
Ja. Aber Achtung, in der momentan aktuellen Wordpress-Version und den Vorgängern ist ein Bug, der Pingbacks nicht richtig bei den Beiträgen ankommen lässt, sich aber einfach beheben lässt. Siehe:
http://forum.wordpress-deutschland.org/showthread.php?t=9089
http://forum.wordpress-deutschland.org/showthread.php?t=12007gruss
Tom -
wahrscheinlich hast du beim importieren in die datenbank den falschen zeichensatz angewählt... ich hatte so etwas ähnliches (alle umlaute waren durch merkwürdige sonderzeichen ersetzt), da lag es daran, dass beim import der zeichensatz standard-mässig auf "utf-8" stand. ich habe das auf "latin_1" umgestellt, und danach war alles in Ordnung.
-
-
hi,
ich hatte mein blog bislang bei strato und musste wegen des fehlenden mod_rewrites auf die sog. "pathinfo" permalinks zurückgreifen:
jetzt bin ich bei einem anderen provider, und habe meine permalinks auf
umgestellt.
Da mein Blog aber ziemlich gut bei google und so erfasst ist, möchte ich die "alten" Links trotzdem funktional haben.ich denke, das kann ich in der .htaccess machen, allein, ich bin zu doof dafür... die "wordpress" .htaccess sieht jetzt so aus:
Apache ConfigurationRewriteEngine On RewriteBase /blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L]ich dachte, wenn ich den Request daruf überprüfe, ob er "/blog/index.php/.../" enthält, und ihn dann einfach als "/blog/.../" rewrite, müsste es gehen. Aber ich bekomme anscheinend die richtige Syntax dafür nicht hin.
Apache ConfigurationRewriteEngine On RewriteBase /blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] RewriteCond %{REQUEST_URI} ^/blog/index.php/(.*)?$ RewriteRule ^blog/index.php/(.*)?$ /blog/$1 [L]funktioniert leider nicht.
Hat jemand eine Idee?
Vielen Dank + Gruss
Tom -
http://forum.wordpress-deutschland.org/showthread.php?t=9089
das ist die diskussion zum .../index.php/bla/ pingback problem, mit lösungen.
gruss
Tom -
http://www.webrocker.de/blog/index.php?s=pingback
es ist ein bug in wordpress, der bei permalinks mit .../index.php/blabla/ die pingbacks zerhaut.
zusätzlich gibt es noch evtl probleme bei bestimmten themes und mit dem UTW plugin. steht in den artikeln oben alles drin, ist nur etwas mühsam zu lesen, weil ich über wochen immer wieder an dem problem getüftelt habe...gruss
Tom -
http://asymptomatic.net/2006/02/09/225…of-destruction/
ZitatIn the current version of WordPress, the main post query uses a date in the WHERE clause to limit the posts it will return to only those posts that were published prior to the current time. That sounds fine, but it doesn’t allow caching tools for MySQL to do their jobs, since the query changes every time the time changes. If we knew in advance to eliminate an entire “type” of post from that query, the query would speed up significantly, potentially due to two things: Using a query cache would be more possible, and there would be no relative compare against a date, but a direct compare against a preset value.
wenn ich das da richtig verstehe, dann ist Wordpress derzeit nicht in der Lage, Post mit Datum größer als dem aktuellen Datum zum Zeitpunkt der Query anzuzeigen.gruss
TomEdit:
Habe gerade gesehen, dass Du schon in der entsprechenden where-clause rumgebastelt hast. evtl wird die anzeige des artikels nochmal woanders als in der classes.php gesteuert? -
ich hatte das problem auch schon einmal unter wp 2.0.3.
da war die "schuld" die grösse der DB, die durch die logs-tabellen von bad-behaviour und vor allem wp-short-stats ziemlich aufgeblasen wurde.
nach dem leeren der entsprechenden tabellen ging auch das cron-mail-versenden wieder.
nach dem oben erwähnten update unter wp 2.0.4 von bad-behaviour ging das cron-gemaile exakt ein mal - seither ist wieder schluss mit backup.
im backend zeigt er die cronjobs als ausgeführt, brav jede nacht, allerdings kommen keine mails. die db ist ziemlich schlank, da ich wp-short-stats nicht mehr einsetze und das logging von bad-behaviour nur noch die "denied" dinger logt, nicht mehr alle zugriffe.
:???:
Vielleicht liegt es garnicht am plugin, sondern an der umgebung?
- mailfunktion, grösse der zu mailenden backup-datei, cronjobrechte auf dem server?
meine wp installation läuft auf einem *räusper Strato Premium S Paket. php5, mysql 4.0.24. die gesamte db ist 1.6mb gross, dabei sind aber auch ein paar grössere tabellen, die nicht im backup gesichert werden sollen. -
ich kenne das plugin nicht, aber hier steht was dazu.
-
ich habe gestern das Bad-Behavior Plugin auf die neuesete Version aktualisiert, jetzt geht auf einmal das automatische DB Backup wieder.
Das verstehe wer will. -
Hallo,
wenn Eure Pingbacks in anderen Blogs komisch angezeigt werden - also statt eines Auszugs des Textes Eures Beitrag irgendwelches anderen Inhalte Eurer Seite, meistens etwas aus dem Meta-Bereich des Beitrags oder aus der Beitrags-Navigation, dann schaut Euch mal Euer Beitrags-Template an.
Wenn der Meta-Abschnitt (also das mit Kategorien des Beitrags und dem RSS Link und so) nicht in einem "P" Tag steht, sondern in einem "DIV" Tag, dann spinnen die Pingbacks.
Ich hatte das vor ein paar Wochen in meinem Blog gefixt und es funktionierte bis heute. Gestern hatte ich die Ultimate-Tag-Warrior Funktion aktiviert, die verwandte Beiträge zum aktuellen Beitrag anzeigt - und aufeinmal war diese Auflistung in den Pingbacks zu sehen.
Ich bin der Sache auf den Grund gegangen und habe, glaube ich, einen Fehler in der xmlrpc.php gefunden (das ist die Datei, die unter anderem für die Pingbacks sorgt). Ich will jetzt nicht in die Tiefe gehen, was da passiert, aber wenn man in Zeile 1192 eine kleine Änderung macht, funktioniert die Darstellung der Pingbacks in beiden Fällen:
StattPHP$linea = preg_replace( "/ <(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $linea );muss
PHP$linea = preg_replace( "/ <(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body|div)[^>]*>/", "\n\n", $linea );stehen, dann klappt's. Dann gehen auch die Pingbacks mit Templates, die ein "DIV" im Meta-Bereich verwenden, und auch die verwandten Beiträge-Links stören nicht mehr.
gruss
TomNachtrag: Die xmlrpc.php steht direkt im wordpress-Verzeichnis, nicht in wp-includes oder so.
-
hallo,
seit dem update auf wp 2.0.4 funktioniert das cron-gesteuerte backup der database nicht mehr. manuell angestossen, geht das backup und der mail-versand, nicht aber zeitgesteuert. plugins deaktiviert, datenbank aufgeräumt, alles schon ausprobiert, geht immer noch nicht.
hat jemand das gleiche problem?
gruss
Tom -
Hier mal die gesamte index.php, als Anregung:
PHP
Alles anzeigen<?php /* Short and sweet */ define('WP_USE_THEMES', false); require('../wp-blog-header.php'); ?> <?php #------------------------------------------------------ # INFO #------------------------------------------------------ # Plugin Name: Newsletter Plugin (de) # Plugin URI: http://watershedstudio.com/portfolio/software/wp-email-notification.html # Description: Erlaubt Usern, sich fuer Newsletter einzutragen <a href="http://bueltge.de">(de: Frank Bueltge)</a> # Author: Brian Groce (de: bueltge.de) # Version: 2.3.1 rev3 # Author URI: http://bueltge.de #------------------------------------------------------ include ("wpemn_config.php"); //********************************************************// // GET VARIABLES FROM URL //********************************************************// $action=$_GET['action']; $id=$_GET['id']; $addr=$_GET['addr']; //********************************************************// // DB CONNECTION //********************************************************// $dbh = mysql_connect("$dbhost", "$dbuser", "$dbpass"); mysql_select_db("$db", $dbh); if ($_POST['email']) { $action = 'sub'; $addr = $_POST['email']; } //********************************************************// // GET CONFIG INFO //********************************************************// $query = "select * from wp_email_list_config where id = '1'"; $res = mysql_query($query) or print mysql_error(); $row = mysql_fetch_assoc($res); $site_name = $row['site_name']; $site_url = $row['site_url']; $blog_url = $row['blog_url']; $from_email = $row['from_email']; $admin_email = $row['admin_email']; $nice_urls = $row['nice_urls']; ?> <?php /* anpassung design */ $themeDir = "../wp-content/themes/meinTollesTheme/"; $myHead = "header.php"; $mySidebar = "sidebar.php"; $myFooter = "footer.php"; $myHtmlContentStart = " <!-- center + right: --> <div id=\"right\"> <!-- contentCR: --> <div class=\"contentCR\"> <!-- ein eintrag: --> <div class=\"post\"> <!-- center: --> <div class=\"center\"> <h1>Newsletter</h1> <!-- contentBox: --> <div class=\"contentBox\"> "; $myHtmlContentEnd = " </div> <!-- :contenbox --> </div> <!-- :center --> <!-- right side bar: --> <div class=\"right\"> </div><!-- :right side bar --> <div class=\"clearAll\"> </div> </div> <!-- :ein eintrag --> </div> <!-- :contentCR --> </div> <!-- :center + right --> <div class=\"clearAll\"> </div> </div> "; ?> <?php include($themeDir.$myHead); ?> <?php include($themeDir.$mySidebar); ?> <?php echo $myHtmlContentStart; ?> <?php if ($action == "") { echo "Keine Aktion angefordert."; echo $myHtmlContentEnd; include($themeDir.$myFooter); exit; } //********************************************************// // SUBSCRIBE //********************************************************// if ($action == "sub") { $query = "select id,email_addr,gets_mail from wp_email_list where email_addr = '$addr'"; $res = mysql_query($query) or print mysql_error(); $row = mysql_fetch_assoc($res); if ($row['email_addr'] == $addr && $row['gets_mail'] == 1) { echo "Diese E-Mail Adresse ist in unserem System schon registriert."; echo $myHtmlContentEnd; include($themeDir.$myFooter); exit; } if ($row['email_addr'] != $addr) { $query = "insert into wp_email_list (email_addr,date_subscribed) values ('$addr',now())"; $res = mysql_query($query) or print mysql_error(); $id = mysql_insert_id(); } else { $id = $row['id']; } send_conf($addr,$id,"0",$site_url,$blog_url,$site_name,$from_email); echo "Danke für die Aktivierung. <br>Sie erhalten eine E-Mail zum Bestätigen "; echo "der Aktivierung. <br>Sobald die Aktivierung bestätigt wurde, empfangen Sie den Newsletter, "; echo "<br>wann immer \"".$site_name."\" eine Veränderung erhält.<br>"; echo "<br>» <a href=\"". $site_url . "./index.php?action=unsub&addr=$id," . md5($addr) ."\">Zum Abmelden hier klicken</a>"; } //********************************************************// // INVITE //********************************************************// elseif ($action == "inv") { $query = "select id,email_addr,gets_mail from wp_email_list where email_addr = '$addr'"; $res = mysql_query($query) or print mysql_error(); $row = mysql_fetch_assoc($res); if ($row['email_addr'] == $addr && $row['gets_mail'] == 1) { echo $addr." ist in unserem System schon aktiviert worden."; echo $myHtmlContentEnd; include($themeDir.$myFooter); exit; } if ($row['email_addr'] != $addr) { $query = "insert into wp_email_list (email_addr,date_subscribed) values ('$addr',now())"; $res = mysql_query($query) or print mysql_error(); $id = mysql_insert_id(); } else { $id = $row['id']; } send_conf($addr,$id,"invite",$site_url,$blog_url,$site_name,$from_email); echo "An die Adresse: ".$addr." ist eine Aktivierungs-E-Mail gesendet worden."; } //********************************************************// // UNSUBSCRIBE //********************************************************// elseif ($action == "unsub") { $query = "delete from wp_email_list where email_addr = '$addr'"; $res = mysql_query($query) or print mysql_error(); if (mysql_affected_rows() > 0) { $msg = $addr." wurde deaktiviert.\n"; $header = "From: \"$site_name\" <$from_email>\n"; Mail($admin_email, "$site_name Deaktivieren: $addr", $msg, $header); $msg = "Die Adresse \"".$addr."\" ist nicht mehr im Newsletter-Verteiler \"".$site_name."\" eingetragen.\n\n"; $msg .= "Wenn Sie wieder eingetragen werden wollen besuchen Sie bitte: ".$blog_url."\n\n"; $msg .= "Danke\n\n$site_name"; $header = "From: \"$site_name\" <$from_email>\n"; Mail($addr, "$site_name Deaktivierung", $msg, $header); } echo "Sie wurden aus dem Newsletter-Verteiler \"".$site_name."\" ausgetragen."; } //********************************************************// // CONFIRM //********************************************************// elseif ($action == "conf") { list($id,$md) = explode(',',$addr); $query = "select email_addr from wp_email_list where id = $id"; $res = mysql_query($query); $row = mysql_fetch_assoc($res); $addr2 = $row['email_addr']; if (md5($addr2) == $md) { $query = "update wp_email_list set gets_mail = 1 where id = $id"; $res = mysql_query($query); $msg = "$addr2 wurde aktiviert.\n"; $header = "From: \"$site_name\" <$from_email>\n"; $header .= "Sender: $from_email\n"; Mail($admin_email, $site_name." Aktivierung: ".$addr2, $msg, $header); echo "Danke für die Aktivierung der Adresse \"".$addr2."\"<br>"; echo "Sie erhalten nun E-Mails, wann immer sich etwas auf<br>"; echo "\"".$site_name."\" verändert."; } else { echo "Diese Adresse ist nicht in unserer Datenbank registriert.<br>"; echo "Bitte tragen Sie sich erneut ein."; } } //********************************************************// // EMPTY //********************************************************// else { echo "Keine Aktion angfordert."; } //********************************************************// // FUNCTION - send_conf //********************************************************// function send_conf($addr,$id,$invite,$site_url,$blog_url,$site_name,$from_email) { // This is for the default URL permalink $confurl = $site_url . "./index.php?action=conf&addr=$id," . md5($addr); if ($invite == 'invite') { $msg = "Jemand hat verlangt, dass ".$addr." aktiviert wird, um Mitteilungen von\n"; $msg .= "\"".$site_name."\" zu empfangen. Zur Bestaetigung der Aktivierung\n"; $msg .= "bitte die folgende URL besuchen. Danke!\n\n"; $msg .= $confurl."\n\n"; $msg .= "Wenn Sie das nicht waren, dann koennen Sie diese Mitteilung ingnorieren\n"; $msg .= "und loeschen. Wir entschuldigen uns fuer Ihre Muehe.\n"; $header = "From: \"$site_name\" <$from_email>\n"; $header .= "Sender: $from_email\n"; Mail($addr, $site_name." - Newsletter Einladung", $msg, $header); } else { $msg = "Jemand hat verlangt, dass ".$addr." aktiviert wird, um Mitteilungen von\n"; $msg .= "\"".$site_name."\" zu empfangen. Zur Bestaetigung der Aktivierung\n"; $msg .= "bitte die folgende URL besuchen. Danke!\n\n"; $msg .= $confurl."\n\n"; $msg .= "Wenn Sie das nicht waren, dann koennen Sie diese Mitteilung ingnorieren\n"; $msg .= "und loeschen. Wir entschuldigen uns fuer Ihre Muehe.\n"; $header = "From: \"$site_name\" <$from_email>\n"; $header .= "Sender: $from_email\n"; Mail($addr, $site_name." - Newsletter Aktivierung", $msg, $header); } } ?> <?php /* design anpassung */ echo $myHtmlContentEnd; include($themeDir.$myFooter); ?>
gruss
Tom -
Hallo,
es ist machbar, aber nicht unbedingt flexibel. Du musst dazu die eigentliche plugin-Datei im Code verändern, dh beim nächsten Update kannst Du die Arbeit nochmal machen.
Damit sich das Ding in mein Design einfügt, habe ich in der Datei ../maillist/index.php diese Änderungen gemacht:PHP
Alles anzeigen<?php /* anpassung design */ $themeDir = "../wp-content/themes/meinTollesTheme/"; $myHead = "header.php"; $mySidebar = "sidebar.php"; $myFooter = "footer.php"; $myHtmlContentStart = " <!-- center + right: --> <div id=\"right\"> <!-- contentCR: --> <div class=\"contentCR\"> <!-- ein eintrag: --> <div class=\"post\"> <!-- center: --> <div class=\"center\"> <h1>Newsletter</h1> <!-- contentBox: --> <div class=\"contentBox\"> "; $myHtmlContentEnd = " </div> <!-- :contenbox --> </div> <!-- :center --> <!-- right side bar: --> <div class=\"right\"> </div><!-- :right side bar --> <div class=\"clearAll\"> </div> </div> <!-- :ein eintrag --> </div> <!-- :contentCR --> </div> <!-- :center + right --> <div class=\"clearAll\"> </div> </div> "; ?> <?php include($themeDir.$myHead); ?> <?php include($themeDir.$mySidebar); ?> <?php echo $myHtmlContentStart; ?> (..... hier kommt der ganze kram der die ausgabe macht, also der code unverändert aus dem plugin ....) <?php /* design anpassung */ echo $myHtmlContentEnd; include($themeDir.$myFooter); ?>Der Code für HtmlContentStart und HtmlContentEnd entspricht dem (html)Code in meiner single.php des Themes, halt nur aufgeteilt in "vor dem eigentlichen Content" (den ja das plugin liefert) und "nach dem eigentlichen Content". Die ganzen Wordpress template Tags und Loops sind rausgenommen.
gruss
Tom -
hm... merkwürdig ist, dass es mit dem standard-theme funktioniert, bei ansonsten gleich gebliebenem beitrag. :confused:
-
wirklich komisch. "mein" single.php template file benutzt die gleichen tags wie die single.php aus dem wp-default Theme. Unterschiede sind nur im layout, und den verwendeten classen an den div- und p-tags.
-
Hallo,
ich habe ein komisches Problem mit der Darstellung meiner Pingbacks. Wenn ich einen anderen Blogeintrag pinge, dann erscheint dort nicht
[...] Sinnvoller Auszug aus meinem Originalbeitrag [...]
wie bei anderen Pingbacks von anderen Blogs, sondern
[...] Text der in meinem Template bei den Metainfos steht (pages bzw rss und trackbacklinks [...]
:shock:Woran könnte das liegen? Es hat irgendwas mit dem Theme bzw Template zu tun... Ich nutze wp 2.0.3 mit einem eigenen Theme. Wenn ich eines der Standardthemes benutze, dann einen Ping auslöse, dann werden die Zusammenfassungen richtig angezeigt.
*help*gruss + danke
Tom -
Zitat von Chris_
Btw, wer auch immer den Bug gemeldet hat. Hast Du eine wp-includes/rewrite.php?
Ich nicht, bei mir versteckt sich das ganze in wp-includes/functions.php in Zeile 217 - ich denke, bei Dir auch. ;-)
ChrisIch habe die Beschreibung des Bugs mal erweitert und die ...key($rewrite)... Lösung vorgeschlagen. Mal schauen, was passiert. Dieser Bug ist momentan nicht auf der Liste für WP 2.0.4 oder 2.1.