Zitatich hätt wahrscheinlich noch jahre dafür gebraucht...
... und das muss ja nicht sein ;)
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen Zitatich hätt wahrscheinlich noch jahre dafür gebraucht...
... und das muss ja nicht sein ;)
ZitatCannot modify header information - headers already sent
Dies erscheint immer dann, wenn bereits eine Ausgabe erfolgt ist, nun aber noch versucht wird etwas am HTTP-Header zu ändern. Dieser wurde natürlich schon längst gesendet, da die Ausgabe (bspw. irgendein Text auf der Webseite) transferiert werden musste und die Übertragung der Daten bereits begonnen hat.
Dies lässt sich lösen, in dem man eben keine Ausgabe macht, bevor etwas am HTTP-Header verändert wird. Achte also bitte darauf, dass in der Datei "limit-archive-widget.php" weder am Anfang noch am Ende Leerzeichen/zeilen enthalten sind. Zwar sollte dies mit ziemlicher Sicherheit das Problem lösen, aber falls nicht, versuch mal kurz den Plugin "Wassup" zu deaktivieren.
Funktioniert der Plugin Better Feed wieder, wenn du den Code zum entfernen des Autors auskommentierst oder löschst? Welchen Fehler gibt es denn genau bei Better Feed?
Zitatgesagt nur leider weiß ich nicht wie ich dass anstellen soll.
Kopiere den folgenden Code in eine Datei namens "limit-archive-widget.php", die du unter "wp-content/plugins" ablegst. Pass bitte auf, dass vor "<?php" und nach "?>" keine Leerzeichen/zeilen eingefügt werden.
<?php
/*
Plugin Name: Limit Archive Widget Filter
Description: Zeigt im Archiv Widget nur ein bestimmte Anzahl an Eintraegen an.
Version: 1.0
*/
# Anzahl an Archiveintraegen
define('LAW_LIMIT', 5);
# Query Parameter um kein Limit zu setzen
define('LAW_QUERY_STRING', 'archive_more');
function limit_archive_widget_filter($content) {
if (strpos($_SERVER['QUERY_STRING'], LAW_QUERY_STRING) !== false)
return $content;
return array_merge($content, array('limit' => LAW_LIMIT));
}
if (function_exists('add_filter'))
add_filter('widget_archives_args', 'limit_archive_widget_filter');
?>
Alles anzeigen
Nachdem du den Plugin aktiviert hast, sollte das Archiv-Widget nur noch fünf Einträge anzeigen; die Anzahl lässt sich über "LAW_LIMIT" im Code des Plugins steuern.
Unterhalb des Archiv-Widget kannst du nun ein einfaches Text-Widget in der Sidebar platzieren und folgenden Link eintragen:
Wird dieser Link nun angeklickt, werden alle Einträge des Archivs angezeigt. Der entsprechende Parametername ("LAW_QUERY_STRING") kann ebenfalls im Code des Plugins angepasst werden.
Es bleibt die Frage, was du von dem DKP-System erwartest. Wenn der Funktionsumfang in ein paar Tagen herunter programmiert wäre, würde ich dir empfehlen, dass eben zu machen. Zumal es sowas für WordPress noch nicht gibt, findest du vielleicht Interessierte, die dir dabei helfen.
Soweit ich weiß liegt es am Plugin-Autor dem Benutzer eine Möglichkeit an die Hand zu geben, mit deren Hilfe festgelegt werden kann, auf welchen Seiten der Plugin bspw. JavaScript oder CSS einbinden soll. Tatsächlich wird dies aber in den wenigsten Fällen umgesetzt. Dies führt zusätzlich zu unschönen Inkompatibilitäten zwischen Plugins, da sich z.B. betimmte JavaScript-Frameworks oft nicht mit einander vertragen.
Hat man nun gefallen an Googles Page Speed oder Yahoos YSlow gefunden, kann man schnell verzweifeln, da viel JavaScript, CSS, Bilder, etc. unnützerweise geladen wird. Oft hilft hier nur das Ändern der Plugins oder Themes, um eine Seite flott zu machen; benutzerdefinierte Felder oder das Vergleichen der aktuellen URL mit einer vorgegebenen Menge an URL-Pfaden sind hier hilfreich.
Zusätzlich würde ich dir empfehlen die Autoren deiner Plugins anzuschreiben und darum zu bitten entsprechende Möglichkeiten vorzusehen. Idealerweise erkennt der Plugin natürlich selbst, ob er auf der aktuellen Seite genutzt wird oder nicht; in Fällen in denen das nicht möglich sein sollte, sollte der Blogger gefragt werden.
Ich hatte in der Datei "wp-includes/feed.php" folgendes gefunden:
function get_comment_author_rss() {
return apply_filters('comment_author_rss', get_comment_author() );
}
Nun war ich davon ausgegangen, dass diese Funktion beim erstellen des Feeds genutzt würde und man mit einem einfachen Plugin den Autor zumindest leer setzen könnte:
if (function_exists('add_filter'))
add_filter('comment_author_rss', create_function('$a', 'return "";'));
Da aber o.g. Funktion gar nicht genutzt wird, sondern einfach "the_author" aufgerufen wird, hätte das ohnehin nicht funktioniert.
Vielmehr willst du sowas in einen Plugin schreiben:
if (function_exists('add_filter'))
if (strpos($_SERVER['REQUEST_URI'], '/feed') !== false)
add_filter('the_author', create_function('$a', 'return "";'));
Mit "is_feed" hat es nicht geklappt, daher werte ich die URI aus; bei dir entsprechend anpassen, falls es nicht "/feed" ist.
Nebenbei: der Feed bleibt trotz leerem creator-Element valid.
Hast du das schon gelesen? Also entweder passt du einfach die Datei an, die den Feed erzeugt, oder nutzt den Filter "comment_author_rss" und gibst einen leeren String zurück; letzteres habe ich allerdings nicht getestet.
Der Plugin Lightbox 2 funktioniert bei mir unter WordPress 2.8 soweit sehr gut.
Zitatmal geht es und dann wieder nicht
Kannst du dazu etwas genaueres sagen?
ZitatAlternativen
Zum Beispiel ThickBox, SmoothBox, Slimbox oder Shutter Reloaded. Im Prinzip findet sich dazu etliches; ausprobiert habe ich aber auch nicht alle.
Ich gehe mal davon aus, dass du nicht das Archiv-Widget nutzt, dass bei WordPress dabei ist bzw. das man in eine Sidebar zieht. Dort gibt es in der Widget-Konfiguration standardmäßig nämlich keine Möglichkeit die Anzahl der angezeigten Monate zu beeinflussen. Oder hast du den Filter "widget_archives_args" genutzt und den Parameter "limit" hinzugefügt? In dem Fall solltest du einfach unter dem Archiv einen "More"-Link anzeigen, der einen bestimmten Parameter an die URL hängt (bspw. nolimit_archive=1). Beim Einfügen des "limit" Parameters prüfst du nun, ob genannter Parameter in der URL vorkommt ("isset($_REQUEST['nolimit_archive'])") und fügst dann eben kein Limit ein. Klickt man nun auf den More-Link werden alle Monate im Archiv angezeigt.
Na gut, ich habe eben mal für dich gesucht, aber nichts gefunden. Ich würde dir empfehlen eine vorhandene Software (wie du sagtest bspw. EQDKP) in deine WordPress-Seite zu integrieren. Vielleicht einfach mit einem iFrame?
Da ich mich mit DKP-Systemen aber nicht genau auskenne, kann ich nichts zum Aufwand sagen, sowas mit WordPress zu verheiraten.
Deine Seiten untereinander anzeigen kannst du doch mit dem Seiten-Widget. Eine Dropdownliste lässt sich allerdings nicht erstellen; sowas kenne ich nur vom Kategorien-Widget.
Wolltest du tatsächlich eine Dropdownliste, wäre dies mit Hilfe von wp_list_pages in einem kleinen Plugin allerdings auch möglich. Traust du dir das in PHP zu?
Sofern dein Theme eine Datei 404.php hat, kannst du dort einfach mit PHP eine Mail an dich schicken. Folgendes in der Datei einfügen:
<?php
mail('MP387@domain.de', 'Wiedermal ein 404...', 'Wir hatten einen 404 auf '.$_SERVER['REQUEST_URI'], 'From: MP387 <MP387@domain.de>');
?>
Ob es dazu auch entsprechende Plugins gibt, weiß ich nicht. Pass aber mit solchen Lösungen auf, da du sonst vielleicht eines Tages mit einem überquellenden Postfach dastehst.
Im angehängten ZIP befinden sich zwei Dateien: "functions.php" und "sidebar.php". Die im Theme vorhandenen Dateien damit überschreiben und schon kannst du Widgets in die neue "Sidebar 1" und "Sidebar 2" bewegen.
Wirklich hübsch kommen manche Widgets allerdings nicht rüber - der Text des Text-Widgets ist beispielsweise recht dunkel -, aber mit ein bisschen CSS bekommst du das in den Griff. Ich hoffe Stylesheets sind dir nicht allzu fremd...
Vielleicht hast du in deinem Theme die Aufrufe für wp_head und wp_footer nicht drin. An diesen Stellen fügen Plugins beispielsweise JavaScript und CSS ein, das u.a. für ThickBox benötigt wird.
Also konkret: in der header.php deines Themes innerhalb des head-Elements "<?php wp_head(); ?>" einfügen. Das gleiche Spiel in der footer.php mit "<?php wp_footer(); ?> irgendwo vor dem schließenden body-Element.
In der Datei "comments.php" deines Themes sollte es einen Abschnitt geben, der in etwa so aussieht:
<?php
if ('open' == $post-> comment_status) { ?>
<?php if ( get_option('comment_registration') && !$user_ID ) { ?>
<!-- Text in etwa:
Du must eingeloggt sein, um Kommentare schreiben zu können -->
<?php } else { ?>
...
Möchtest du nun die Eingabefelder für Kommentare in einer bestimmten Kategorie nur noch für eingeloggte Benutzer anzeigen, muss das - in meinem Beispiel - zweite "if" angepasst werden. Hier hilft die Funktion "in_category".
Da bei dir normalerweise immer kommentiert werden darf, brauchen wir die Abfrage nicht, ob ein Benutzer zum kommentieren registriert sein muss und schreiben die if-Anweisung so um:
<?php
if ('open' == $post-> comment_status) { ?>
<?php if (in_category(4711) and !$user_ID ) { ?>
<!-- Hier wird sachlich diskutiert, also bitte einloggen -->
<?php } else { ?>
<!-- Kommentarfelder -->
<?php } ?>
...
Nun wäre nur noch die ID beim Funktionsaufruf "in_category" anzupassen und fortan müsste man zum kommentieren in dieser speziellen Kategorie angemeldet sein.
Folgenden Code in einer Datei "neuester-beitrag.php" im Plugin-Verzeichnis ("wp-content/plugins") abspeichern:
<?php
/*
Plugin Name: Neuester Beitrag
Description: Zeigt den neuesten Beitrag einer Kategorie an.
Version: 1.0
*/
function blubberbernd_neuster_beitrag($atts) {
global $wpdb;
extract(shortcode_atts(array('cat' => NULL), $atts));
if ($cat == NULL or !is_numeric($cat)) return '';
$title = $wpdb->get_var('SELECT post_title AS title
FROM '.$wpdb->posts.', '.$wpdb->term_relationships.'
WHERE post_type = "post"
AND post_status = "publish"
AND ID = object_id
AND term_taxonomy_id = '.$cat.'
ORDER BY post_date DESC
LIMIT 1');
return $title;
}
if (function_exists('add_shortcode'))
add_shortcode('neuester_beitrag', 'blubberbernd_neuster_beitrag');
?>
Alles anzeigen
Nun auf deiner Seite den Shortcode "neuester_beitrag" mit einer Kategorie versorgen und das wars. Also für Kategorie 42 so:
[neuester_beitrag cat=42]
Das ist mein neuester Beitrag und ich wollte euch noch
ein bisschen Text dazu blubbern...
Alles klar?
Richte für Domain B und C entsprechende Weiterleitungen auf die Seiten ein, die über Domain A zu erreichen sind. Dies geht entweder mit sog. Rewrite-Regeln im Apache-Webserver (oder einem Pendant in IIS), ganz einfach mit einem Meta-Refresh oder mit JavaScript.
Vielleicht ist das alles aber auch schon zu viel des guten und dein Webhoster bietet bereits in einem Verwaltungsbereich eine Möglichkeit an Weiterleitungen einzurichten. Sofern das möglich ist, solltest du dies nutzen.
Dennoch, hier die Vorgehensweisen.
Für Domain C machst du das ähnlich und änderst nur die Zielseite entsprechend ab.
<html>
<head>
<meta http-equiv="refresh" content="0; URL=http://www.domain-a.de/spezielle-seite/">
</head>
<body>
<a href="http://www.domain-a.de/spezielle-seite/">Sofern ihr Browser keine Weiterleitung unterstützt, bitte hier klicken.</a>
</body>
</html>
Auch hier die Zielseite entsprechend anpassen.
Ein Plugin an dem ich mitgearbeitet habe ist New Tag Cloud. Dort kannst du einfach mit Hilfe eines Shortcodes (bspw. "[newtagcloud int=0]") die Tags auf einer beliebigen Seite anzeigen lassen. Wenn du es bunter magst, sieht WP Colorful Tag Cloud auch ganz nett aus.
Also konkret: Seit anlegen, Shortcode einfügen, fertig.