Hallo,
ich habe mich seit einigen Tagen mal an die Programmierung eines einen Plugins gemacht. Dieses soll einen eingenen Posttyp "verein" anlegen, sowie eine Metabox anlagen, in der der Ansprechpartner eingetragen wird.
Ich bin leider noch nicht ganz Fit in der objektorientierten Programmierung..
// Anmerkung: Das Endprodukt des Plugins habe ich nicht mit Plugins wie ACF hinbekommen, daher mein Eigenversuch - auch um das das mit den eignen Plugins auch mal zu lernen...
Das Konkrete Problem liegt darin, dass meine Function "add_meta_box()", die entsprechende Callback-Funktion nicht finden kann.
Der Debugger sagt mir andauernd: "[COLOR=#ff0000]call_user_func() expects parameter 1 to be a valid callback, function 'verein_metabox_ansprechpartner_callback' not found or invalid function name[/COLOR]"
Ich habe auch schon vor jede function 'public', 'protected' ausprobiert, oder gar nichts von allem.
Mein Script sie zusammengefasst wie folgt aus:
[FONT=Courier New]<?php
// Pluginheader
$plugin_start = new tp_posttype_verein();
class tp_posttype_verein {
public function __construct() {
add_action( 'init', array( $this, 'register_post_type_vereine' ) );
add_action( 'add_meta_boxes', array( $this, 'add_verein_metabox_ansprechpartner' ) );
add_action( 'save_post', array( $this, 'verein_metabox_ansprechpartner_save' ) );
}
public function register_post_type_vereine(){
$labels = array(jede Menge definitionen)
$args = array(
'labels' => $labels,
// und so weiter uns sofort
);
register_post_type( 'verein', $args );
}
public function add_verein_metabox_ansprechpartner() {
add_meta_box('verein_metabox_ansprechpartner', __('Ansprechpartner'), '[COLOR=#ff0000]verein_metabox_ansprechpartner_callback[/COLOR]', 'verein', 'normal', 'high');
}
public function [COLOR=#ff0000]verein_metabox_ansprechpartner_callback[/COLOR]() {
echo '<label for="verein_metabox_ansprechpartner_name">Ansprechpartner</label><br />';
echo '<input type="text" id="verein_metabox_ansprechpartner_name" name="verein_metabox_ansprechpartner_name" value="Test" size="25" />';
}
public function verein_metabox_ansprechpartner_save($post_id) {
// Jede Menge Prüfungen
if( isset( $_POST['verein_metabox_ansprechpartner_name'] ) ) {
$ansprechpartner_name = sanitize_text_field( $_POST['verein_metabox_ansprechpartner_name'] );
add_post_meta( $post_id, '_verein_metabox_ansprechpartner_name', $ansprechpartner_name );
}
} // Ende der Class
[/FONT]
[FONT=Arial]Könnte mir da wer weiter helfen?[/FONT]