サポート » 使い方全般 » 投稿画面の本文が空欄の時に注意を促したい

  • 投稿画面の本文の部分が空欄の時に、注意を促したいと考えています。

    「本文の部分が空欄ですが、投稿しますか?」というような促し方でもいいですし、
    本文が空欄の場合は、投稿できないようにする、という形でも大丈夫です。

    プラグインやコードなど、方法は問いませんので、
    もしわかる方がいらっしゃいましたら、ご回答いただきたいです。

    よろしくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • こんにちは

    function my_alert( $data  ){
    
    if ( empty($data['post_content'] ) ) {
    	wp_die( '本文がありません' );
    }
      return $data;
    }
    
    add_filter( 'wp_insert_post_data' , 'my_alert' , '99');

    で、どうですか?

    トピック投稿者 hagemaru

    (@hagemaru)

    ご返信ありがとうございます。

    nobitaさんのコードを
    そのままfunctions.phpに貼り付けてみました。

    そして、投稿の「新規追加」という部分をクリックしました。

    すると、投稿画面に入ることなく、
    グレーの画面がすぐに表示される、という感じでした。

    わがままで申し訳ないのですが、
    投稿画面が空欄だった時に注意を促すようにしたいのですが、
    なにか、方法などはありますでしょうか

    http://ja.forums.wordpress.org/topic/10613?replies=5
    これはタイトル用ですが、コンテンツ(記事欄)用に直せばうまくいきます。

    トピック投稿者 hagemaru

    (@hagemaru)

    pluto1234さんが貼ってくださいましたリンクを参考にしつつ、
    他のサイトなどを調べて、初心者で理解しきれていないなりにコードを書いたのですが、
    うまく機能しませんでした。

    アドバイスをいただけませんでしょうか。

    <?php
    add_action( 'admin_head-post-new.php', 'my_content_required' );
    function my_content_required() {
    ?>
    <script type="text/javascript">
    jQuery(document).ready(function($){
      if('content' == $('#post_type').val()){
        $("#post").submit(function(e){
          if('' == $('#title').val()) {
            alert('コンテンツが入力されていません');
            $('#ajax-loading').css('visibility', 'hidden');
            $('#publish').removeClass('button-primary-disabled');
            $('#title').focus();
            return false;
          }
        });
      }
    });
    </script>
    <?php
    }
    ?>
    if('' == $('#title').val()) {
      ↓↓
    if('' == $('#content').val()) {
    $('#title').focus();
      ↓↓
    $('#content').focus();

    で新規作成のときは、うまくいくはずです。ただし、いったん保存したものを再度編集し、投稿欄を(ワザワザ)空にしたときはエラーが出ません。

    このときも、エラーを出すには、

    add_action( 'admin_head-post-new.php', 'my_content_required' );
    add_action( 'admin_head-post.php', 'my_content_required' ); // 追加

    とすればいいようです。

    追加(元のまま)

    if('content' == $('#post_type').val()){
      ↓↓
    if('post' == $('#post_type').val()){

    トピック投稿者 hagemaru

    (@hagemaru)

    pluto1234さんが示してくださいましたコードの変更で
    無事、タイトルが空欄の時に注意を促すことが出来ました。

    具体的にコードも教えていただき、
    大変助かりました。
    ありがとうございました。

    hagemaruさん

    解決した模様だったので、そのままになっていましたが、たまたま、再確認したところ、確かにお知らせしたコードに問題があることが解りました。

    修正コードを書いておきます。

    function my_alert( $data  ){
    
    	$message = '<h2>本文が空なので、保存できませんでした。</h2><a href="javascript:history.back();" style="font-size:small">やり直りする</a>';
    
    	if ( empty($data['post_content'] ) and $data["post_status"] == 'publish' ) {
    		wp_die( $message );
    	}
    
    	return $data;
    }
    
    add_filter( 'wp_insert_post_data' , 'my_alert' , '99');

    $data["post_status"] == 'publish'を追加しました(’auto-draft’で動作してしまっていました)

    トピック投稿者 hagemaru

    (@hagemaru)

    自分から解決済みにしたにも関わらず、
    修正コードを教えていただき、ありがとうございます。
    nobitaさんに感謝します。

    ただ、ここで改めて投稿していただいたのも何かの縁かもしれないのと同時に、
    私も不備が発生したので、解決済みを解除した上でそのまま質問をさせてください。

    pluto1234さんが教えてくださいましたコードの修正なのですが、
    実際に修正して使ってみたところ、
    本文が書かれていない場合は、アラートが発生しましたが、
    本文が書かれていても、アラートが発生しました。
    ただし、本文が書かれて、1度アラートが発生しますと、
    その後は発生しなくなりました。

    うまく説明できないのですが、
    現状は、内容が書かれているかどうかに関係なく、1度はアラートが発生してしまいます。

    そこで、
    アラートの形式で本文が記入されていない時の注意の促しについて、
    分かる方がいらっしゃいましたら、コードなどをぜひ教えていただけますとうれしいです。
    よろしくお願いします。

    トピック投稿者 hagemaru

    (@hagemaru)

    補足ですが、

    どうも、pluto1234さんが教えてくださいましたコードの修正は、
    htmlでの場合は普通に機能するみたいですが、
    ビジュアルの場合で機能にエラーが生じるみたいです。

    申し訳ありませんが、
    投稿画面で本文が空欄の時にアラートを出す方法が
    分かる方はご回答のほど、よろしくお願いします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「投稿画面の本文が空欄の時に注意を促したい」には新たに返信することはできません。