サポート » 使い方全般 » プレビュー画面で公開ボタン

  • 解決済 tuyoshi

    (@tuyoshi)


    カスタムフィールドテンプレートを使っているものです。

    下書き状態の投稿は編集画面で公開にすることができると思うのですが、ふと「下書きのプレビュー画面」で公開ボタンつけられないかな?って考えました。

    これもしつけられたら編集からプレビューみて、公開っていう手間が省けるので時間的にもかなり効率よく出来ると思うんですよ。

    結構調べたんですけれど、同じことをやられている記事が見当たらなかったので質問しました。
    Wordpress詳しい方、助けれてくれるとありがたいです。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • 進捗情報を書いておきます。

    公開ボタンを設置して、動作的には
    $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チックな方法にされた方がいいかと思います。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「プレビュー画面で公開ボタン」には新たに返信することはできません。