サポート » 使い方全般 » 新規投稿時にテキストエリアへテンプレートを挿入

  • 解決済 masaru

    (@masaru)


    WordPressとEvent Calendar 3.2.beta2を使いイベント募集をできるサイトを作っています。
    誰でもユーザー登録ができるようにし、投稿者として登録しているようにしています。

    投稿者が新規投稿(post-new.php)を開いたときのテキストエリア(本文入力エリア)に初めから指定した文言が入るようにはできませんでしょうか?

    テンプレ内容
    □開催日:
    □集合場所:
    □内容:
    □その他:

    本来はボックス?みたいなのを用意してそこに入力して登録するとテンプレ内容が投稿されるってのが理想なのですが・・・。
    何かいい方法がありましたらご教授をお願い致します。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • Custom Field Template
    とかが該当するのではないかと?
    Get Custom Field Values
    で取り出すとか

    それとか、定番の
    Custom Field GUI Utility

    私もそのように頼まれたことがあって、そのときはJavaScriptでテキストをセットしました。

    kvexさん sysbirdさん
    JavaScriptとかはまったくわからないので教えて頂いたプラグインを試してみたいと思います^^;

    JavaScriptでテキストをセットできるのが一番利用者への負担が少なそうですね。

    プラグインを試してみましたがテスターさんより使いにくいと言われたので・・・
    JavaScriptでテキストをセットする方法を試したいと思っています。

    実装するにあたり参考になるサイトやコードをご教授願いますでしょうか。

    管理画面ではjQueryが使えるので、
    アクションフックのadmin_head のタイミングで、

    jQuery('#content').html("テキスト");

    が実行されるようにすれば、本文入力エリアにテキストが表示されますよ。
    テキストを編集するには、プラグインを作成するなど工夫が必要になってきますが、参考までに。

    便乗コメントです。
    丁度探してたので参考になりました。

    sysbirdさん
    ありがとうございます。

    テキストはこっちで固定指定表示なので1回決まれば変更はほとんど無いのでプラグイン作成までの必要性は感じていません。

    数点教えて頂いても宜しいでしょうか。
    苦手分野なのでなんちゃってで書いたので他にええ方法があれば教えてください^^;

    jsファイルを準備

    var $j = jQuery.noConflict();
    $j(function(){
    $j('#content').html("テキスト<br>テキスト1");
    });

    functions.phpに下記を記載

    function add_header1(){
      wp_enqueue_script('admin_head', get_bloginfo('template_url') . '/add_header1.js', array('jquery'), false, true);
    }
    add_action('admin_print_scripts', 'add_header1');

    ・挿入するテキストに改行をいれた状態にしたいのですがどうすればいいのでしょうか?
    例:
    テキスト
    テキスト2
    テキスト3
    テキスト4
    みたいな表示に

    ・新規投稿時だけに挿入させるように出来ますでしょうか。
    現状だと新規でも編集でも表示されてしまいます^^;

    お手すきの時にでもご返信頂ければ幸いです。

    新規投稿の場合はbodyタグにpost-new-phpクラスが付いているので、それが存在するかどうかをチェックするとよいです。

    if(0 < jQuery('body.post-new-php').length){
     jQuery('#content').html("テキスト");
    }

    改行は、html編集の場合は 、¥r¥n
    ビジュアル編集の場合は、&lt;br&gt;
    で区切ってセットすると表示できます。(半角で)
    html編集かビジュアル編集かの判断は、前述のように編集に関するタグを探してチェックすることが可能です。

    >masaru さん
    admin_print_scripts というフックがあったのですね!
    私も今度からこれを使うようにしたいです。

    sysbirdさん
    再びありがとうございます。

    var $j = jQuery.noConflict();
    if(0 < jQuery('body.post-new-php').length){
    $j(function(){
    $j('#content').html("テキスト<br>テキスト1");
    });
    }

    ってすることで新規のみ動作するようになりました。

    html編集かビジュアル編集かの判断がいまいち不明なのでもう少し教えて頂いてもいいでしょうか。
    ググってみましたがわかりませんでした^^;
    #探しきれてなかったらごめんなさい。

    html編集かビジュアル編集かの判断処理方法を探していたらたどり着きましたがレスがないってことは判定するのは難しいってことでしょうか?

    編集画面のソース(HTML)をみると、「ビジュアル編集」と「HTML編集」のボタンがあり、どちらかに activeクラス がついているのでjQueryで判断可能ですよ。

    ソース見たときに変わらなかったのでどこで判断するんだろうと思ったのですが、一回一回新規で開くと変わってました^^;

    class="active hide-if-no-js"が確かについてますね。

    さてと全くわかってないPHPについて調べてきます^^;

    情報ありがとうございました。

    結構情報が集まってますね。
    #私用にてばたばたしていて時間がありませんでした。

    頭が複雑な処理に対処できないので修正コード書いてくれる人募集します。

    現在の状態:
    新規投稿時のみテキストエリアへ指定文字を挿入

    add_header1.js

    var $j = jQuery.noConflict();
    if(0 < jQuery('body.post-new-php').length){
    $j(function(){
    $j('#content').html("テキスト<br>テキスト1");
    });
    }

    テーマのfunctions.php

    function add_header1(){
      wp_enqueue_script('admin_head', get_bloginfo('template_url') . '/add_header1.js', array('jquery'), false, true);
    }
    add_action('admin_print_scripts', 'add_header1');

    希望動作:
    ・「ビジュアル編集」と「HTML編集」のどちらを使っているかを判断して挿入するテキスト文の改行コードを変更したい
    ビジュアル編集は"テキスト<br>テキスト1"
    HTML編集は"テキスト2\r\nテキスト3"

    資料?:
    「ビジュアル編集」と「HTML編集」の時のソースコード
    ビジュアル

    <div id="editor-toolbar">
    		<div class="zerosize"><input accesskey="e" type="button" onclick="switchEditors.go('content')" /></div>
    			<a id="edButtonHTML" class="hide-if-no-js" onclick="switchEditors.go('content', 'html');">HTML</a>
    			<a id="edButtonPreview" class="active hide-if-no-js" onclick="switchEditors.go('content', 'tinymce');">ビジュアル</a>
    
    		<div id="media-buttons" class="hide-if-no-js">

    HTML

    <div id="editor-toolbar">
    		<div class="zerosize"><input accesskey="e" type="button" onclick="switchEditors.go('content')" /></div>
    			<a id="edButtonHTML" class="active hide-if-no-js" onclick="switchEditors.go('content', 'html');">HTML</a>
    			<a id="edButtonPreview" class="hide-if-no-js" onclick="switchEditors.go('content', 'tinymce');">ビジュアル</a>
    
    		<div id="media-buttons" class="hide-if-no-js">

    宜しくお願い致します。

    IEだとテキストテキスト1と表示されるのですが回避方法ってありませんでしょうか?

    とりあえず実装できたっぽいので解決とします。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「新規投稿時にテキストエリアへテンプレートを挿入」には新たに返信することはできません。