Ich möchte Kommas in Tag-Namen zulassen? Zum Beispiel "hello, world"
oder "portland, or"
aber Wordpress trennt sie immer wieder. Ich kann es von der Kategorieseite machen:
image http://img839.imageshack.us/img839/6869/picturepp.png
Und es zeigt sich gut. Aber alles, was von der Seitenleiste der Beiträge hinzugefügt wurde, wird hier nicht angezeigt:
image http://img52.imageshack.us/img52/4950/picture1oax.png
Es gibt hier eine Diskussion darüber: http://core.trac.wordpress.org/ticket/14691, aber es sieht so aus, als würde es zumindest für eine Weile nicht gelöst.
In der Zwischenzeit suche ich nach einer einfacheren Lösung als das Hinzufügen von Kategorien über die Kategorieseite.
Ich habe versucht, nach Plugins zu suchen und habe keine gefunden, die hilfreich wären. Es gibt einige, die das Ersetzen von Kommas durch andere Zeichen beim Anzeigen einer Liste von Kategorien oder Tags behandeln, aber ich sehe keine Plugins, mit denen der Benutzer das Standardtrennzeichen ersetzen kann.
Es ist mir egal, ob ich den Core selbst patchen muss. Idealerweise könnte ich ein Plugin schreiben, aber nachdem ich einen Teil des Codes durchgesehen habe, kann ich nicht herausfinden, wo dies gehandhabt wird.
Hat jemand eine Lösung oder Tipps, mit welchen Funktionen und Javascript das Hacken beginnen soll? Ich bin mir nicht sicher, wo ich anfangen soll, im Code zu suchen.
Antworten:
Kein Core-Hacking erforderlich - dank: HOOKS.
Haken ermöglichen es, das Problem mit einer schönen Kombination von zu beheben
Hier ist der Code:
Vielleicht helfen auch einige zusätzliche Details in meinem Blog-Beitrag zu diesem Thema. Http://blog.foobored.com/all/wordpress-tags-with-commas/
Grüße, Andi
quelle
_x( ',', 'tag delimiter' )
diese Option , um den tatsächlichen Begrenzer zu ermitteln.Es ist möglich und sehr einfach, Tags mit Kommas programmatisch zu speichern.
Wenn Sie beim Aufruf
wp_set_post_terms( $post_id, $terms, $taxonomy )
einen String angeben, wird dieser in ein Array aufgelöst. Wenn Sie Ihr$terms
als Array angeben, wird jedes Element im Array als ein eigener Begriff angegeben, ohne dass es in mehrere Begriffe aufgeteilt wird.Beides
wp_insert_post
und anschließendwp_update_post
verwenden,wp_set_post_terms
wenn das$arg
tax_input
gesetzt ist.Möglicherweise müssen Sie ein eigenes Meta-Feld erstellen, in dem alle Zeichenfolgen, einschließlich Kommas, als einzelner Begriff übergeben werden. Einige Plugins, wie z. B. ACF Pro, tun dies standardmäßig, wenn Sie ein benutzerdefiniertes Feld zum Speichern der Taxonomie erstellen und auswählen, dass die Begriffe beim Speichern auch geladen und zugewiesen werden sollen.
Selbst wenn diese Begriffe mit einem Komma gespeichert werden, werden sie beim Bearbeiten des Beitrags möglicherweise immer noch als separate Elemente angezeigt. In diesem Fall ist es möglicherweise am besten, die Standardbenutzeroberfläche zu deaktivieren und sich auf die benutzerdefinierten Metaboxen zu verlassen. Dies kann über die Bildschirmoptionen beim Bearbeiten eines Beitragstyps erfolgen. Benutzerdefinierte Taxonomien können bei der Registrierung auch im Schnellbearbeitungsbereich ausgeblendet werden.
quelle
add_filter( 'pre_tax_input', function( $tax_input ) { return (array) $tax_input; } );
Sie können jedoch nur jeweils eine Amtszeit einreichen.Sie können einen Filter verwenden.
Wenn Sie beispielsweise nach jedem Tag in einer Tag-Cloud ein Komma hinzufügen möchten, können Sie Folgendes in die Datei functions.php einfügen
quelle
Hier liegt Ihre Lösung. Beachten Sie die Zeile 2614:
Innerhalb von wp-includes / taxonomy.php . Viel Glück beim Hacken des Codes. Es gibt keinen Haken. es ist hart codiert ... Entschuldigung. Ich denke, dass das Hacken des Codes Ihre einzige Option für den Moment ist.
quelle
Kommas in Tag-Namen funktionieren nicht richtig, da WordPress das Tag beim Hinzufügen zu einem Beitrag als mehrere Stichwörter parst und dabei das Komma unterbricht.
Eine einfache Lösung:
Verwenden Sie
,
( den HTML-Code für das Komma ) anstelle eines regulären Kommas.Dann:
,
wird als nettes Komma in Posts, Tag-Seitentiteln und vielen anderen Orten angezeigt.,
Wenn Sie den Namen des Tags eingeben, wird in der Admin-Oberfläche als Roh angezeigt .Zur Info: Die Verwendung der HTML-Entität
,
funktioniert nicht.quelle