Beispielsweise...
add_action('init', 'reg_tax');
function reg_tax() {
register_taxonomy_for_object_type('category', 'attachment');
}
Fügt dem Medienmanager und dem Anlageneditor ein Eingabefeld "Kategorie" hinzu. Ich möchte wissen, ob es möglich ist, diese Funktion zu ändern, um stattdessen eine "Link-Ziel" -URL zu erfassen. Die URL wird ausgeführt, wenn auf das Bild geklickt wird.
Sie müssen auch wissen, wie Sie den Wert für dieses neue Feld abrufen können.
UPDATE: Dank Thomas Answer hier ist meine endgültige Lösung ...
function my_image_attachment_fields_to_edit($form_fields, $post) {
$form_fields["custom1"] = array(
"label" => __("Image Links To"),
"input" => "text",
"value" => get_post_meta($post->ID, "_custom1", true)
);
return $form_fields;
}
function my_image_attachment_fields_to_save($post, $attachment) {
if( isset($attachment['custom1']) ){
update_post_meta($post['ID'], '_custom1', $attachment['custom1']);
}
return $post;
}
add_filter("attachment_fields_to_edit", "my_image_attachment_fields_to_edit", null, 2);
add_filter("attachment_fields_to_save", "my_image_attachment_fields_to_save", null, 2);
theme-development
Scott B
quelle
quelle
Antworten:
Ich benutze ein sehr grobes Plugin, um Informationen über den Künstler und eine URL zu Mediendateien hinzuzufügen. Es muss etwas optimiert werden (und ich brauche die Zeit), aber es funktioniert und kann zeigen, wie man die zusätzlichen Felder hinzufügt und wie man sie in Ihrem Thema verwendet:
quelle
Als Antwort auf Drews Frage in den Kommentaren können Sie den HTML-Code für das Feld anpassen, indem Sie
input
für eine neue Zeichenfolge festlegen und dann dieselbe Zeichenfolge als Schlüssel zum$form_fields
Array hinzufügen .Standardmäßig akzeptiert WordPress nur
text
undtextarea
für deninput
Typ. Alles andere muss wie folgt definiert werden. Ich habe nicht versucht, Formularfelder auf diese Weise tatsächlich beizubehalten, um einen anderen Eingabetyp, wie z. B. ein Optionsfeld, zu erstellen, der möglicherweise etwas mehr Finesse erfordert.quelle