Da mir beim letzten Mal irgendwie nicht geholfen werden konnte, versuche ich hier noch einmal, mein Problem zu beschreiben und hoffe, dass das hilft:
Ich habe mir eine Box gebaut, in der der Benuzter auswählen kann, ob ein Beitrag für alle sichtbar sein soll, oder lediglich für eingeloggte Besucher:
PHP
/*Make new Box on the right sidebar of the postpage*/
function lio_adm_SidebarBox(){
echo '<fieldset id="visible" class="dbx-box">
<h3 class="dbx-handle">Sichtbarkeit</h3>
<div class="dbx-content">
<input type="radio" name="loggedinonly" value="0" style="margin-bottom: -3px;" checked="checked"> Für alle sichtbar<br>
<input type="radio" name="loggedinonly" value="1" style="margin-bottom: -3px;"> Nur eingeloggt sichtbar
</div>
</fieldset>';
}
Das Feld wird angezeigt und man kann seine auswahl treffen. Wenn der Beitrag gespeichert wird, versuche ich meine Variable auch in meiner Tabelle zu speichern:
PHP
/*Save data in SQL when editing, saving or publishing post*/
function lio_adm_SavePost($postID){
global $wpdb;
$table_name = $wpdb->prefix . "loggedinonly";
$select = "SELECT
post_ID
FROM
".$table_name."
WHERE
post_ID='".$postID."'";
$results = $wpdb -> get_results($select,'ARRAY_A');
if($results == ''){
$savedata = "INSERT INTO
".$table_name."(
post_ID,
onlyloggedin)
VALUES(
'".$postID."',
'".$_POST['onlyloggedin']."')";
}
else{
$savedata = "UPDATE
".$table_name."
SET
onlyloggedin='".$_POST['onlyloggedin']."'
WHERE
post_ID='".$postID."'";
}
$wpdb -> query($savedata);
}
Alles anzeigen
Leider ist die Variable $_POST['onlyloggedin'] leer, also immer 0, egal welche Auswahl ich treffe. Meine Funktion habe ich folgendermaßen integriert (bisher):
PHP
add_action('publish_post','lio_adm_SavePost');
add_action('edit_post','lio_adm_SavePost');
add_action('save_post','lio_adm_SavePost');
Muss ich da was anders machen? Habe ich irgendwo einen Denkfehler? Ich komme echt nicht weiter an dieser Stelle...