進捗情報を書いておきます。
公開ボタンを設置して、動作的には
$post->status=’draft'(下書き)もしくは’pending'(レビュー待ち)を
‘publish'(公開)に変えればいいだけなのでは?と考えて現在、データベースの$post->statusの部分のみを書き換えるボタンを作成できないか試行錯誤中です。
進捗情報を書いておきます。
上記でも書いた通り、データベースを書き換えるだけでいいのでは?と思い、現在
single-xxx.php内に
<div id=”publishing-action”>
<form method=”post” action=”<?php status_change_publish($post); ?>”>
<input name=”original_publish” type=”hidden” id=”original_publish” value=”<?php esc_attr_e(‘Publish’) ?>” />
<?php submit_button( __( ‘Publish’ ), ‘primary’, ‘publish’, false, array( ‘tabindex’ => ‘5’, ‘accesskey’ => ‘p’ ) ); ?>
</form>
<div class=”clear”></div>
</div>
という記述を追加しました。この文はfrom文以外はダッシュボードの投稿編集画面の公開ボタンから流用しました。
次にfromのaction先をfunctionが集まっているfunction.php内に
function status_change_publish($post){
}
といったようにfunctionを作りました。
現在、このfunction内にUPDATE文でpost_statusを上書き出来ないか試行錯誤注です。
UPDATE分が上手いこと動いてくれない。
ここの部分わかる人いたら助かります。
自己解決しました。報告しておきます。
function status_change_publish($post){
mysql_query(“UPDATE wp_posts SET post_status =’publish’ where ID='”.$post->ID.”‘”);
return $post;
}
これでできました。
tuyoshiさん
少し気になるコードです。テーブルの接頭辞はユーザーによって違いますし、このコードを試される方もいるかもしれません。
なので、解決済みのところ恐縮ですが、せっかくWordPress を利用しているのですから、wp_update_post あたりを参考に、もう少し安全でWPチックな方法にされた方がいいかと思います。