Generell veränderst Du das Standard-Verhalten bei WP über Hooks und Filter. Ich könnte mir nun vorstellen, dass dazu auch das Ziel nach einem Login gehört. Das könnte sich z.B. nach der Rolle des eingeloggten Nutzers richten. Ob es einen passenden Filter gibt und ob Du an der Stelle auch die Info über die Nutzerrolle zur Verfügung hättest, kannst Du im Codex recherchieren.
Beiträge von Ammaletu
-
-
Ich kenne das Thesis-Theme nicht, aber kann ja sein, dass das Theme das so vorsieht. Durch einen Vergleich mit einem Theme, das Deinen Wünschen entspricht, müsste sich das doch leicht anpassen lassen. Suche z.B. nach "the_excerpt" oder "the_content" im Quelltext.
-
-
Das ganze ist leider schon eine Programmieraufgabe und mir fehlt die Zeit dazu, das direkt fertig zu bauen. Machbar ist das auf jeden Fall mit jQuery, Du müsstest aber überlegen was Besucher ohne JavaScript als Fallback sehen.
Ich stelle mir das so vor: Das erste Dropdown mit den Jahren kriegt ein onchange, welches die ID des gewählten Elementes ausliest und damit eine AJAX-Abfrage macht. Das liefert das neue Monats-DropDown zurück, welches in die Seite statt des bisherigen eingebaut wird.
Hier wie gesagt die Frage nach dem Fallback: Sieht man beim ersten Laden der Seite alle Monate? Oder nur eine Schrift "Bitte Jahr auswählen", und falls ja, was machen dann Nutzer ohne JavaScript? Man könnte das DropDown natürlich erst mit JavaScript einfügen, so dass Nutzer ohne JavaScript davon einfach gar nichts sehen.
Belesen müsste ich mich ansonsten zur Frage, wie man den AJAX-Aufruf auf dem Server gestaltet. Dafür hat WP aber soweit ich weiß auch schon was an Bord, so dass das ohne zu viele Hacks gehen sollte. Irgendein Script muss das auf dem Server aber natürlich entgegennehmen und verarbeiten. Vermutlich wird auch das über eine Funktion in der functions.php gehen, nehme ich an.
-
Zitat
Wenn das ginge, würde ich ja lieber gleich mit dem ersten Dropdown nur die Jahre anzeigen und auswählen und dann diesen wert dem zweiten Dropdown anliefern so dass der sich entsprechend mit den Kinder-Monaten füllt. Das geht doch bestimmt - blos wie???
Hatten wir das nicht letztens gerade in einem Thread? Ich könnte es Dir aber auch nicht wirklich sagen, wie man das hinbekommt. Sollte prinzipiell aber gehen. Eine Liste aller Jahre auszugeben, sollte ja gehen, solange die eine gemeinsame Oberkategorie haben. Mit depth=1 blendest Du da die Kinder aus. Die Frage wäre, was man bei dem zweiten Select macht. Das wird mit JavaScript und/der Ajax gehen müssen, denke ich.
Zitatdu sagst, die funktion kopieren und anpassen - wie und wo kopiere ich denn diese funktion? Und die Veränderte, sollte die dann in die function.php?
Wie und wo kann ich denn die search kopieren und anpassen
<?php get_search_form(); ?>Einen brauchbaren Texteditor oder ein anderes Suchtool nehmen und damit in allen WP-Dateien nach "function get_search_form" suchen. Das sollte in der regel zielstrebig zu der Definition der Methode führen. Dann erst mal schauen, ob man sie über Hooks und Filter anpassen kann. Falls ja, das machen, das ist auf lange Sicht pflegeleichter. Wen es aber mal nicht geht, die Funktion wie sie ist in die functions.php des Themes kopieren und dort umbenennen. Im Theme dann die neue Funktion benutzen.
-
Mehr oder weniger geraten und ungetestet, aber probier es mal so. Ich hoffe, das ist nicht zu umständlich gedacht:
PHP
Alles anzeigen$post_categories = wp_get_post_categories($a->post_id); $my_remove = ''; foreach($post_categories AS $key => $id) { if ($id == 5) $post_categories[$key] = 21; if ($id == 84) $my_remove = $key; } if ($my_remove != '') { unset(&$post_categories[$my_remove]); $post_categories= array_values($post_categories); } wp_set_post_categories($a->post_id, $post_categories); -
Es sollte beides kein Problem sein: Beim Posten des Kommentars oder bei der Anzeige des Artikels den Inhalt des Beitrags zu verändern. Einerseits wäre es schöner, wenn das nur beim Posten im Beitrag direkt persistent geändert würde. Auf der anderen Seite müsste man dann vermutlich an verschiedenen Stellen ansetzen, um auch Kommentare zu erfassen, die erst freigeschaltet oder aus dem Spamordner befreit werden müssen.
Es dürfte also einfacher sein, bei der Anzeige alle Kommentare auszulesen und daraus den Text zu bauen. Das wird dann aber bei jeder Anzeige gemacht, ist also auch die Frage, wie viele Kommentare und wie viele Seitenaufrufe Du erwartest. Die andere Lösung wäre also sicher effizienter. Außerdem könntest Du dann ggf. noch eingreifen und korrigieren, wenn z.B. zwei Kommentare sich überschnitten haben oder so. Andernfalls würde der Text ja immer automatisch generiert werden.
Prinzipiell müsstest Du schauen, wie Du die Beiträge auswählst. Am einfachsten sicher über eine Kategorie oder ein Tag oder direkt die ID vergleichen, falls es nur einer sein soll. Benutzerdefiniertes Feld geht auch. Dann kannst Du in der functions.php des Themes Code dafür ablegen, der ausgeführt wird, wenn ein Kommentar gespeichert wird (über einen passenden Hook, siehe Codex). Dieser Code schaut nach, ob der aktuelle Beitrag dafür in Frage kommt und ob der Kommentar freigeschaltet ist. Wenn ja, ändert er den Text des Beitrags. Letzterer Punkt könnte etwas knifflig werden.
-
Einfach einbauen im Theme? Ich wüsste jetzt so auf Anhieb nicht, dass das weitere Einstellungen erfordert. Manche Themes bieten das auch direkt an, ggf. über eine Option gesichert.
-
Einen Blog eröffnen kannst Du auch ohne die Blogmap. Soweit ich weiß ist das nur ein Linkverzeichnis.
Frage an jottlieb und die anderen: Wo ist der auf der "Blog eintragen"-Seite verlinkte Blog-Eintrag hin? Mit der Suche kann ich ihn nicht finden. wir sollten entweder den Link korrigieren oder eine kurze Erklärung auf die Seite setzen.
-
Bitte nutze die Forensuche zum Stichwort "Cufon", das hatten wir gerade vor einigen Tagen/Wochen. Außerdem wäre es schön, wenn Du schauen könntest, ob das in der Doku des Themes deutlich genug drinsteht. Wenn nicht solltest Du den Theme-Autor informieren.
-
Genau genommen zeigt er mit show_option_all schon etwas, und zwar alle Postings. Das sieht man aber erst wenn man eine Auswahl trifft und dann auf "Jahr 2009" klickt. Die DropDown-Box wird nicht abgeschickt, wenn man das schon vorausgewählte noch mal anklickt. Um das zu umgehen könntest Du mit show_option_none noch einen nicht abschickbaren Text wie "Bitte auswählen:" drüber setzen.
Ich habe gerade mal in den Quelltext geschaut: Diese Option setzt immer als Kategorie-ID 0 ein, ohne zu schauen ob Du mit childof vielleicht etwas anderes angegeben hast. Du wirst das also etwas anders implementieren müssen, fürchte ich. Im Moment bin ich aber auch überfragt, was man da genau tun könnte. Das Ergebnis der Funktion filtern? Die Funktion kopieren und anpassen?
-
Ok, das ist merkwürdig. Bei mir klappt das nämlich definitiv nicht. Ich habe extra die aktuelle WP-Version mit TwentyTen-Theme und ganz ohne Plugins probiert, geht nicht. Der Workaround tut es fürs erste, aber merkwürdig ist das schon...
-
Ah ok, jetzt verstehe ich es. Ok, dann könnte Dein Code theoretisch so gehen, aber sicherer wäre vermutlich, in dem Fall diesen Eintrag aus dem Array zu löschen?! Ich bin hier aber etwas am Raten, da ich nicht mal weiß, was in de Array eigentlich genau steht (was sind die Keys?) und wie das WP dann weiterverarbeitet. Ein Blick in die entsprechende Code-Datei sollte aber Aufschluss geben.
Und ja, einfach nichts mit = zuweisen wird nicht gehen, versuch da dann null oder ''.
-
Zitat
Nur kommt mir das irgendwie gemurkst vor, kann mir nicht helfen. Dachte dass es vielleicht irgendeine Art Trick gibt. Denn andere haben auf ihren Portfolio Seiten ja auch einen Blog und Archive.
Die haben dann aber auch nur ein Archiv und nicht zwei getrennte. Oder sie haben sich selber ein Archiv gebaut. Du kannst es sicher hinkriegen, dass z.B. die Portfolio-Beiträge aus dem normalen Archiv rausgehalten werden, und dann legst Du Dir eine Portfolio-Archiv-Seite an mit einem Template, welches die Portfolio-Beiträge nach Zeit sortiert ausgibt. Das sollte sich leicht machen lassen. Andere nehmen fürs Portfolio vielleicht sowieso statische Seiten, so dass sie eh eine Lösung dieser Art machen müssen.
-
Zitat
Mein erster Gedanke "Blog" als Kategorie anzulegen und mit eigenem category-blog.php Template zu versehen hat leider nicht so recht funktioniert. Da die Page-Navigation nicht funktioniert hat.
Das wäre jetzt eigentlich schon die naheliegendste Lösung. Ggf. mpsste man mal schauen, woran es da genau gescheitert ist.
ZitatAlso für Tags gibt es die Möglichkeit, mehrere Taxonomien anzulegen. Du kannst also Blog-Tags und normale Tags trennen und dann einzeln anzeigen und stylen. Das sollte sich mit Google und dem Codex gut machen lassen.
Bei allgemeinen Sachen wie Autorenarchiv, Suchergebnis, die ganzen zeitbasierten Archive etc. bin ich aber nicht sicher, wie das gehen soll. WP bietet Dir nur ein solches Archiv an. Du kannst da theoretisch Artikel ausblenden, aber Du hast nur eine URL für ein Monatsarchiv, das kann also nicht mal so und mal so anzeigen. Es müsste aber möglich sein, z.B. die zeitbasierten Archive nur für den Blogbereich zu nutzen, wo sie mehr Sinn machen.
-
-
Wie gesagt, Du kannst es über eine statische Seite machen. Ob Du deren Inhalt dann ausgibst oder nicht, bleibt Dir überlassen. Der Seite kannst Du ein eigenes Template geben im Seiteneditor oder einfach eine page-[slug].php anlegen, welche dann automatisch zur Anzeige verwendet wird. Darin kannst Du nach Belieben auch andere Sachen ausgeben.
Versuche halt wann immer möglich mit der API von WordPress zu arbeiten und nicht dagegen. Klar kann man benötigte Infos auch mit einer eigenen SQL-Query aus der DB fischen, das ist nur keine gute Idee. ;-)
-
Vielen Dank für Deine Antwort! Ich dachte eigentlich auch, dass das von selber gehen sollte. Nur zur Sicherheit: Hast Du im Editor beide Kategorien angehakt oder nur die Unterkategorie?
Ich habe das Problem jetzt mittlerweile von der anderen Seite her gelöst. Mein Problem war ja, dass ich a) zu faul bin, immer zwangsläufig beide Kategorien anzuhaken und b) nicht garantieren kann, dass die späteren Autoren das auch machen. Also habe ich mal eine kleine Filterfunktion geschrieben, die genau das macht. Wenn der Autor bei einem Artikel eine Unterkategorie auswählt, stellt die Funktion sicher, dass auch alle deren Elternkategorien ausgewählt werden.
PHP
Alles anzeigen/** * Makes sure that if a sub-category is selected when saving a post, that all * parent categories are also selected. * * @param categoryIds The array of selected category IDs. */ function jr_add_parent_category($categoryIds) { $catsToAdd = array(); if (!$categoryIds || empty($categoryIds)) { return $categoryIds; } foreach ($categoryIds as $catId) { while ($catId != '') { $catObject = &get_category($catId); if (is_wp_error($catObject) || !$catObject->parent || ($catObject->parent == $catObject->term_id)) { $catId = ''; continue; } if (!in_array($catObject->parent, $categoryIds)) { $catsToAdd[] = $catObject->parent; } $catId = $catObject->parent; } /* end while parents */ } /* end foreach category */ foreach ($catsToAdd as $catId) { $categoryIds[] = $catId; } /* end foreach category */ return $categoryIds; } add_filter('category_save_pre', 'jr_add_parent_category');Ist bisher nur kurz getestet, scheint aber zu gehen. Bin für Verbesserungsvorschläge und sonstige Anmerkungen aber dankbar. Falls man das doch einfacher bei der Anzeige lösen kann, wäre das natürlich auch gut zu wissen.
-
Schau Dir mal dieses Bild an:
http://codex.wordpress.org/images/1/18/Template_Hierarchy.pngDarauf ist übersichtlich dargestellt, welche Template-Dateien Du im Theme anbieten kannst.
Wo Du Deine Bilder nun anzeigst, wäre die Frage. Die Doku des Gallery-Plugins (welches?) müsste dazu ja eigentlich auch was hergeben, oder? Im Zweifelsfall nimm eine statische Seite dafür. Du musst so oder so alle angezeigten Inhalte auf ein WP-Element mappen, einen Beitrag, einen Tag, eine Seite etc. Die Darstellung hängt dann vom Theme ab, aber WP muss erstmal die URL zu einem Element in der DB auflösen können.
-
Dazu fällt mir auf Anhieb das Plugin "Maintenance Mode", bei dem Du Dir die Anzeige sicher abschauen kannst. Wenn man den MM aktiviert, wird im WP-Fehlerstil oben eine Nachricht angezeigt. Das ist ja soweit nur eine Frage, den Inhalt auf den richtigen Seiten mit dem richtigen Hook und der richtigen CSS-Klasse auszugeben.
Wie man das dann so gestaltet, dass der Admin es bestätigen und verstecken kann, wäre eine andere Frage. Über eine Option? Das wäre dann aber eine Option pro Nutzer, oder reicht es Dir, wenn irgendein Nutzer das bestätigt (könnte ja mehrere Admins geben)?