d.w.c
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: wysisygにクイックタグを追加したいついでに「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にクイックタグを追加したいずいぶん経ちましたが、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' ); //フロントエンドで使用
フロントエンド側にフックできていなかったのが原因でした。
フォーラム: 使い方全般
返信が含まれるトピック: 管理画面の投稿ページに作成者による絞り込み項目を追加する方法教えていただいた記述と下記のページを参考に、できました!
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が編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: acfで作った投稿型5段階評の平均得点をもとに記事のランキングを作りたい。下記のコードを集計コードの下につけることで自己解決しました。
<?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が編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: acfで作った投稿型5段階評の平均得点をもとに記事のランキングを作りたい。フォーラム: 使い方全般
返信が含まれるトピック: 複数の投稿からカスタムフィールド内の数字を拾ってきて合算したいフォーラム: 使い方全般
返信が含まれるトピック: 複数の投稿からカスタムフィールド内の数字を拾ってきて合算したい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(); /*クエリのリセット*/ ?>
フォーラム: 使い方全般
返信が含まれるトピック: プラグインを使用せずに人気記事一覧を作成したいフォーラム: 使い方全般
返信が含まれるトピック: プラグインを使用せずに人気記事一覧を作成したいありがとうございます!
教えていただいたものをそのまま差し替えるだけだと動作に変化はなく、更新すればするだけカウントが回りました。
そこで下記のように$_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を使ったローカル環境です。フォーラム: 使い方全般
返信が含まれるトピック: wysisygにクイックタグを追加したい>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
フォーラム: 使い方全般
返信が含まれるトピック: wysisygにクイックタグを追加したい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にクイックタグを追加したい調べて気づいたことがあるので追記します。
QTags.addButton を使ってクイックタグを追加すること自体はできました。
ただ、これはダッシュボードに入って記事作成する場合のみに適用されて、フロント側の編集時にはこの時追加したクイックタグは反映されていませんでした。フォーラム: 使い方全般
返信が含まれるトピック: wysisygにクイックタグを追加したいプラグインのAddQuicktagは試したんですが、これはウィジウィグは適用外でした。
追加したいのはオリジナルで作成したショートコードを自動挿入してくれるクイックタグです。OKwaveにしばらく掲載していて何も回答がなかったので、こちらにも投稿しました。
こちらで回答が得られた場合はOKwaveの方の投稿は削除予定です。
逆に向こうで回答が得られた場合はこちらにその解答及びリンクを張る予定です。なにしろ提案すら全くないので・・・
とりあえず同じサイト内でのマルチ投稿じゃなければいいかと思ったんですが、駄目でしょうか?クイックタグAPIというのを見てちょっといじってみます。
フォーラム: 使い方全般
返信が含まれるトピック: wysisygにクイックタグを追加したいフォーラム: 使い方全般
返信が含まれるトピック: フロント側からアイキャッチ画像を削除したい。