フォーラムへの返信

15件の返信を表示中 - 61 - 75件目 (全94件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    ついでに「Visual Editor Custom Buttons」というプラグインを使用したらフロントエンドのビジュアルモードでもクイックタグ的なことができたので、記録のために残します。

    「Visual Editor Custom Buttons」を有効化しただけではフロントエンドでは表示されないので、
    functions.phpに
    add_action('init', 'vecb_add_buttons');
    を追記することで、ビジュアルモードのフロントエンドでの表示が有効化されました。
    このプラグインは自作のアイコンを作ってボタンとして配置できるので、ビジュアルモードでの表示はaddQuicktagより好きです。(表示順をいじれないのが玉に瑕ですが)

    このプラグインでテキストモードのクイックタグも同時に作れますが、表示順をいじれないので自分は使ってません。
    もし表示順にこだわらず、このプラグインを利用してテキストモードにもクイックタグを表示するのであれば
    add_action('wp_print_footer_scripts', '_add_my_quicktags');
    の追記も必要です。

    テキストモードに勝手に追加される「Link Tag」のボタンが目障りで消したければ、Visual Editor Custom Buttons.php 1087行目あたりのQTags.addButtonをコメントアウトすれば消せますが、まあこれはプラグインの更新が入ればすぐにまた表示されちゃいそうですね。

    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    ずいぶん経ちましたが、Google翻訳で頑張ってみたところ、ACFのメールサポートにより解決しました。

    function appthemes_add_quicktags_both() {
        if (wp_script_is('quicktags')){
    ?>
        <script type="text/javascript">
        QTags.addButton( 'eg_hr', '水平線', '<hr>', '', false, 'hr', '1' );
        </script>
    <?php
        }
    }
    add_action( 'admin_print_footer_scripts', 'appthemes_add_quicktags_both' ); //管理画面で使用
    add_action( 'wp_print_footer_scripts', 'appthemes_add_quicktags_both' );    //フロントエンドで使用

    フロントエンド側にフックできていなかったのが原因でした。

    トピック投稿者 d.w.c

    (@dwc-1)

    教えていただいた記述と下記のページを参考に、できました!
    https://codex.wordpress.org/Function_Reference/get_users

    今回はとりあえず”管理者”と”寄稿者”のみを対象にするために下記のようにしてみました。

    get_users(
      array(
        'fields' => 'ids',
        'role__in'=>array(
          'administrator','contributor'           
        )
      )
    );

    「”購読者”以外」にする方法も、下記のようにすると実装できました。

    get_users(
      array(
        'fields' => 'ids',
        'role__not_in'=>array(
          'subscriber'
        )
      )
    );

    助かりました。ありがとうございます!

    • この返信は7年、 8ヶ月前にd.w.cが編集しました。
    トピック投稿者 d.w.c

    (@dwc-1)

    下記のコードを集計コードの下につけることで自己解決しました。

    <?php //ランキング用のカスタムフィールドへ格納
    //獲得平均星数
    update_post_meta( $post_id, 'post-star-ave', $ave_star ); 
    //総投稿者数
    update_post_meta( $post_id, 'post-star-people', $people ); 
    ?> 
    • この返信は7年、 9ヶ月前にd.w.cが編集しました。
    トピック投稿者 d.w.c

    (@dwc-1)

    add post meta と update post meta を使えばなんかできそうな気がしてきたので、試してみます。

    トピック投稿者 d.w.c

    (@dwc-1)

    そんなやり方があるんですね!
    ちょっと調べてみます。

    ありがとうございますm(_ _)m

    トピック投稿者 d.w.c

    (@dwc-1)

    mura0403さんありがとうございます!
    そのまま使わせていただいて解決できました!!

    一応平均数の取得までの式を記録のために残しておきます。

    <?php /*関連付けられたレビューの全数字を取得&計算*/
    $post_id = get_the_ID();               //母体となる投稿の投稿者ID取得
    $args = array(
    	'numberposts' => '-1',
    	'post_type' => 'star-rate' ,   //投稿タイプの指定
    	'post_status' => 'all',        //すべての投稿タイプ
    	'meta_key' => 'star-post-id',
    	'meta_value' => $post_id       //IDで紐づけしたのを引っ張る
    	);
    $customPosts = get_posts($args);
    
      $star = '';                          //reset
      $sum_star = '';
      $people = '';
      
    if($customPosts) :
    	foreach($customPosts as $post) : 
    	
    $star[] = get_field('star-rate');      //カスタムフィールドを取得 ※数値型
    
    $people++;                             //対象記事の数だけ加算する
    
    endforeach;
    
    if($star): $sum_star = array_sum($star); endif;
    
      echo '獲得総星数:';
      echo $sum_star;//計算した値を表示
      echo '<br>投票総人数:';
      echo $people;
      echo '<br>平均星数:';
      echo round($sum_star/$people,1);     //小数点第1位で四捨五入
    
    endif;
    wp_reset_postdata(); /*クエリのリセット*/ 
    ?>
    トピック投稿者 d.w.c

    (@dwc-1)

    すみません、冷静になったら意味ないことをしているのに気づきました。
    教えていただいたアドバイスをもとにもう少しいじってみます。

    トピック投稿者 d.w.c

    (@dwc-1)

    ありがとうございます!

    教えていただいたものをそのまま差し替えるだけだと動作に変化はなく、更新すればするだけカウントが回りました。
    そこで下記のように$_SESSION[$postID] = true;の位置をif文の前に変えたらカウントが止まりました。

    //アクセス数の保存
    function set_post_views( $postID ) {
    
        $_SESSION[$postID] = true;
        if( ! isset($_SESSION[$postID]) ){
    
            $count_key = 'post_views_count';
            $count     = get_post_meta( $postID, $count_key, true );
            if ( $count == '' ) {
                $count = 1;
                delete_post_meta( $postID, $count_key );
                add_post_meta( $postID, $count_key, '1' );
            } else {
                $count ++;
                update_post_meta( $postID, $count_key, $count );
            }
        }
    
    }

    ただ、この場合は当然if( ! isset($_SESSION[$postID]) )の条件は初回から該当しなくなってしまうので意味がなくなり、カウントが止まるのは当然でした。
    どうやら教えていただいたコードのようにif文の中に入れた場合は$_SESSION[$postID] = true;が仕事をしていないように見えるんですが…原因は何でしょうか?

    ちなみに$_SESSION[$postID]が各ページで独立して動いているのか確認のため、試しに訪問回数をカウントする下記のphpコードをpage.phpに相当するオリジナルテンプレートに下記のように追記してみました。

    <?php
    
    if (!isset($_SESSION[$postID])){
    print('初回の訪問です。セッションを開始します。');
    
    $_SESSION[$postID] = 1;
    $_SESSION["date"] = date('c');
    }else{
    $visited = $_SESSION[$postID];
    $visited++;
    
    print('訪問回数は'.$visited.'です。<br>');
    
    $_SESSION[$postID] = $visited;
    
    if (isset($_SESSION["date"])){
    print('前回の訪問日時は'.$_SESSION["date"].'です。<br>');
    }
    
    $_SESSION["date"] = date('c');
    }
    
    ?>

    その結果、訪問回数のカウントはページをまたいで数字が継続されていました。
    functions.phpからsession_start();を削除してheader.phpに追記してみたのですが、結果は同じでした。
    どうやら$_SESSION[$postID]は1度のアクセスでどのページにとんでも同一のセッションとして扱われてしまうような雰囲気です。

    $_SESSION[$postID]が投稿ページを移動しても同一のもの扱いでカウントが継続される意味がよくわからないのですが…
    これはどういったことなんでしょうか?
    関係あるのかわかりませんが、投稿はカスタム投稿タイプを使用していて、Xamppを使ったローカル環境です。

    • この返信は7年、 10ヶ月前にd.w.cが編集しました。理由: code表示のエラー
    • この返信は7年、 10ヶ月前にd.w.cが編集しました。理由: 追記
    • この返信は7年、 10ヶ月前にd.w.cが編集しました。理由: 不要文削除
    • この返信は7年、 10ヶ月前にd.w.cが編集しました。
    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    >munyaguさん
    調べようとしてくださり、ありがとうございます。
    x743さんのおっしゃるように、フリー版にウィジウィグのアドオンを追加して使用するっていうのも無理でしょうか・・・?

    「カスタムフィールドでビジュアルエディタとテキストエディタを使う」
    (http://notes25.net/wordpress/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%81%A7%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E3%81%A8%E3%83%86%E3%82%AD/)

    もし有料版でしか動作確認できないようであれば、回答を日本語で得るのは絶望的になりますね・・・orz

    • この返信は7年、 11ヶ月前にd.w.cが編集しました。
    • この返信は7年、 11ヶ月前にd.w.cが編集しました。
    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    ACFはPRO版を使用しています。
    これのウィジウィグにはテキスト/ビジュアルのタブが選択可能ですが、使用環境ではテキストオンリーに設定して実装する予定です。

    ダッシュボードからアクセスした場合にはクイックタグは使用できるので、フロント側での編集時にも表示できるようにしたいだけなんですけど・・・なぜかうまくいきません。

    フロント側での編集というのは、
    「Advanced Custom Fieldでフロントエンドの投稿フォームを作る方法」
    (http://qiita.com/webpicker/items/0d0769e744af62e927eb)
    こういうやつです。

    ちなみにプラグインの中身のwysiwyg.phpファイルの中に

    
    	/*
    	*  get_toolbars
    	*
    	*  This function will return an array of toolbars for the WYSIWYG field
    	*
    	*  @type	function
    	*  @date	18/04/2014
    	*  @since	5.0.0
    	*
    	*  @param	n/a
    	*  @return	(array)
    	*/
    	
       	function get_toolbars() {
       		
       		// global
       		global $wp_version;
       		
       		
       		// vars
       		$toolbars = array();
       		$editor_id = 'acf_content';
       		
       		
       		if( version_compare($wp_version, '3.9', '>=' ) ) {
       		
       			// Full
    	   		$toolbars['Full'] = array(
    	   			
    	   			1 => apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'hr', 'alignleft', 'aligncenter', 'alignright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id),
    	   			
    	   			2 => apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'alignjustify', 'forecolor', 'pastetext', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id),
    	   			
    	   			3 => apply_filters('mce_buttons_3', array(), $editor_id),
    	   			
    	   			4 => apply_filters('mce_buttons_4', array(), $editor_id),
    	   			
    	   		);
    	   		
    	   		
    	   		// Basic
    	   		$toolbars['Basic'] = array(
    	   			
    	   			1 => apply_filters('teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'alignleft', 'aligncenter', 'alignright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id),
    	   			
    	   		);
    	   		  		
       		} else {
    	   		
    	   		// Full
    	   		$toolbars['Full'] = array(
    	   			
    	   			1 => apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'justifyleft', 'justifycenter', 'justifyright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id),
    	   			
    	   			2 => apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'justifyfull', 'forecolor', 'pastetext', 'pasteword', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id),
    	   			
    	   			3 => apply_filters('mce_buttons_3', array(), $editor_id),
    	   			
    	   			4 => apply_filters('mce_buttons_4', array(), $editor_id),
    	   			
    	   		);
    
    	   		
    	   		// Basic
    	   		$toolbars['Basic'] = array(
    	   			
    	   			1 => apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id ),
    	   			
    	   		);
    	   		
       		}
       		
       		
       		// Filter for 3rd party
       		$toolbars = apply_filters( 'acf/fields/wysiwyg/toolbars', $toolbars );
       		
       		
       		// return
    	   	return $toolbars;
    	   	
       	}

    というのを見つけ、$toolbars[‘Full’] と$toolbars[‘Basic’] の中の’bold’を試しに全部削除してみましたが、ビジュアルモードの太字クイックタグは消せましたが、テキストモードのクイックタグはなぜか消えませんでした。

    • この返信は7年、 11ヶ月前にd.w.cが編集しました。
    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    調べて気づいたことがあるので追記します。

    QTags.addButton を使ってクイックタグを追加すること自体はできました。
    ただ、これはダッシュボードに入って記事作成する場合のみに適用されて、フロント側の編集時にはこの時追加したクイックタグは反映されていませんでした。

    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    プラグインのAddQuicktagは試したんですが、これはウィジウィグは適用外でした。
    追加したいのはオリジナルで作成したショートコードを自動挿入してくれるクイックタグです。

    OKwaveにしばらく掲載していて何も回答がなかったので、こちらにも投稿しました。
    こちらで回答が得られた場合はOKwaveの方の投稿は削除予定です。
    逆に向こうで回答が得られた場合はこちらにその解答及びリンクを張る予定です。

    なにしろ提案すら全くないので・・・
    とりあえず同じサイト内でのマルチ投稿じゃなければいいかと思ったんですが、駄目でしょうか?

    クイックタグAPIというのを見てちょっといじってみます。

    フォーラム: 使い方全般
    返信が含まれるトピック: wysisygにクイックタグを追加したい
    トピック投稿者 d.w.c

    (@dwc-1)

    解決は難しいですかね・・・?

    フォーラム: 使い方全般
    返信が含まれるトピック: フロント側からアイキャッチ画像を削除したい。
    トピック投稿者 d.w.c

    (@dwc-1)

    >ishitakaさん

    すごい!
    求めていた結果が手に入りました!ありがとうございます!!!

    今回教えていただいたのをもとに、ajaxを勉強してみようと思います。

15件の返信を表示中 - 61 - 75件目 (全94件中)