サイト全体に「モダンブラック 」スキン適用中。

スキンからの設定値制御でチェックボックスが無効にできない | 開発者向けフォーラム | Cocoon フォーラム

書き込みの前に以下の3点をご確認ください。

  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示してください
  3. 該当部分のキャプチャ環境情報とともに書き込んでいただけると助かります

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法 
  7. ブラウザ環境チェックツール

フォーラムの内容は、CCライセンス(CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムのTwitterアカウント(@CocoonForum)はこちら

スポンサーリンク
スキンからの設定値制御でチェックボック...
 
Share:

[解決済] スキンからの設定値制御でチェックボックスが無効にできない  

  RSS

アオイ
(@aoix)
Active Member
参加: 1年 前
投稿: 5
2018年11月10日 21:20  

Cocoon設定の「投稿エントリーカード」「関連記事投稿エントリーカード」「ページ送りナビ」の枠線表示を無効にしたいと思い、スキン内からPHP・CSV・JSONでそれぞれ試してみましたがどれも無効になりませんでした。

Cocoonバージョン: 1.3.7.3

CSVでは以下のように記入。

//エントリーカードの枠線を無効
entry_card_border_visible,0

PHPで以下のように記入した場合はエラーになります。(スキンのfunctions.phpは親テーマより後に読み込まれてる?)

//エントリーカードの枠線を無効
function is_entry_card_border_visible(){
return false;
}

表示されるエラー

Fatal error: Cannot redeclare is_entry_card_border_visible() ~

他の設定は問題なく変更できるのですが、チェックボックスの無効だけ制御できてないように思います。


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
参加: 1年 前
投稿: 4133
2018年11月10日 22:50  

ご報告ありがとうございます!
取り急ぎ不具合を修正したものだけアップしておきました。
https://github.com/yhira/cocoon/archive/master.zip

PHPで以下のように記入した場合はエラーになります。(スキンのfunctions.phpは親テーマより後に読み込まれてる?)

公開ページでは、親テーマの再々先頭で読み込んでいます。
少なくともis_entry_card_border_visibleよりも先に読み込まれています。

ただ、設定ページでの読み込みは遅いです。それがエラーの原因だと思います。
設定画面での呼び出しのことを失念していました。

けれどこれは、Cocoon設定ページに「スキン制御」を表示させるには、設定を保存してデータベースに保存した後、値を取得する必要があるので、設定画面では、どうしてもかなり後の方に読み込む必要があるからです。
以前はその書き方でもOKだったんですか、Cocoon設定ページに「スキン制御」を表示させるには、そのようにせざるを得ませんでした^^;

なので、1.3.7以降で関数制御するには、以下のように!function_existsといった関数の存在確認をする必要もあるかもしれません。

//エントリーカードの枠線を無効
if ( !function_exists( 'is_entry_card_border_visible' ) ):
function is_entry_card_border_visible(){
  return false;
}
endif;

※上記の制御方法だと「Cocoon設定」ページに「スキン制御」は表示されません。

スキンのデモのサンプルコードも!function_existsを使ったものに修正しておきました。

 

This post was modified 4か月 前 2 times by わいひら

アオイ
(@aoix)
Active Member
参加: 1年 前
投稿: 5
2018年11月11日 00:21  

早速のご対応ありがとうございます!

!function_existsでいけるのは確認していたのですが、それでよかったんですね!
アップしていただいた修正版で試してみました。

PHPでは以下のように記入。

//エントリーカードの枠線を無効
if ( !function_exists( 'is_entry_card_border_visible' ) ):
function is_entry_card_border_visible(){
return false;
}
endif;

//関連記事エントリーカードの枠線を無効
if ( !function_exists( 'is_related_entry_border_visible' ) ):
function is_related_entry_border_visible(){
return false;
}
endif;

//ページ送りナビの枠線を無効
if ( !function_exists( 'is_post_navi_border_visible' ) ):
function is_post_navi_border_visible(){
return false;
}
endif;

CSVでは以下のように記入。

entry_card_border_visible,0
related_entry_border_visible,0
post_navi_border_visible,0

試した結果、

PHP…チェックボックスの無効は3つとも制御OK
CSV、JSON…エントリーカードの枠線は無効にできるが関連記事とページ送りナビの枠線は無効にならない

本体に支障をきたす部分ではないので、お時間のある時にでもご確認いただければと思います。


わいひら
(@yhira)
メンバーサイト Admin
参加: 1年 前
投稿: 4133
2018年11月11日 00:56  

テーマ表示部分は修正してましたが、設定値取得部分の変更を忘れていました。

修正しておきました。
https://github.com/yhira/cocoon/archive/master.zip
多分これで改善されたと思います。

あと、PHPでの指定は以下の「グローバル変数を使った方法」の方が良いかもしれません(テーマ設定ページのスキン制御が効くので)。
https://wp-cocoon.com/skin-functions-php/

global $_THEME_OPTIONS;
$_THEME_OPTIONS = array(
  'entry_card_border_visible' => '0',
  'related_entry_border_visible' => '0',
  'post_navi_border_visible' => '0',
); 

おそらくご存知の上であえて、関数のオーバーライドを利用した記述(もしくはテスト)であれば、それはそれで全然問題ないです。

This post was modified 4か月 前 by わいひら

アオイ
(@aoix)
Active Member
参加: 1年 前
投稿: 5
2018年11月11日 09:49  

修正ありがとうございます!
一通り試しましたがテーマ表示部分は設定変更が問題なく反映されるようになりました。

ただ、設定画面で以下2点ちょっと気になります。

  • エントリーカード枠線表示・・・設定の有無に関わらずチェックが入らない
  • 関連エントリーとページ送りナビの枠線・・・無効設定時にチェックが入っている

※いずれもスキンからの設定は記入通りに反映されています。

全ての方法でやってみましたが、やはりCSVが簡単でいいですね!
少ない記述で設定できるのは使いやすいです。色々試してみたくなります 😊 


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
参加: 1年 前
投稿: 4133
2018年11月11日 22:35  

動作確認ありがとうございます。

設定画面で以下2点ちょっと気になります。

これは、スキン制御下でということでしょうか。
それとも、スキン制御を行っていなくても設定が変更できないということでしょうか。

CSV楽ですよね(笑)
僕も今、CSVしか使ってません。
カッコとかクォーテーションで囲まなくていいのは、地味に軽減になりますよね。書式を覚えるのも楽ですし。

,,をコメントとして使えるのも地味に便利(※Cocoon設定のCSV制御のみに有効な方法だけど)。

This post was modified 4か月 前 2 times by わいひら

アオイ
(@aoix)
Active Member
参加: 1年 前
投稿: 5
2018年11月12日 08:01  

『エントリーカード枠線表示』
スキン制御化・スキン制御を行っていない、どちらの場合でもチェックが入らない。

『関連エントリー・ページ送りナビの枠線』
スキン制御化でチェックを無効にしているのにチェックが入っている。

以上のような状況です。

個人的には末尾のカンマを削除し忘れることがよくあるので、CSVで制御できるのは助かります。あとCSVでコメントが使えるのも親切すぎます!


わいひら
(@yhira)
メンバーサイト Admin
参加: 1年 前
投稿: 4133
2018年11月12日 20:25  

『エントリーカード枠線表示』
スキン制御化・スキン制御を行っていない、どちらの場合でもチェックが入らない。

スキン制御下で制限はできないのは仕様です。
スキン制御を行っていない場合は、僕の環境からは変更出来るようです。
functions.phpに関数のオーバーライドが残っているということはないでしょうか。
もし残っていない場合は、スキンを「なし」状態にしたとしても、不具合が再現されますでしょうか。

『関連エントリー・ページ送りナビの枠線』
スキン制御化でチェックを無効にしているのにチェックが入っている。

これは、スキン制御している場合は、以前のテーマの設定状態が表示されます。
このようにしているのは理由があって、そうしないと「スキン制御」で設定した値が、「Cocoon設定値」に保存されてしまうからです。
「スキンを使用していたら設定値が変わってしまった」ということがないようにこのようにしています。


アオイ
(@aoix)
Active Member
参加: 1年 前
投稿: 5
2018年11月12日 21:04  

スキン制御下で制限はできないのは仕様です。
スキン制御を行っていない場合は、僕の環境からは変更出来るようです。
functions.phpに関数のオーバーライドが残っているということはないでしょうか。

確認したらfunctions.phpにオーバーライドが残っていました。本当に申し訳ありません…。

仕様の件も理解できましたのでスキンからの制御も利用していきたいと思います。
お忙しい中、何度もご確認いただきありがとうございました。


わいひら 件のいいね!
わいひら
(@yhira)
メンバーサイト Admin
参加: 1年 前
投稿: 4133
2018年11月13日 20:54  

いえいえ、とりあえずその部分は不具合ではなかったようで安心しました^^

こちらこそ、重要な不具合をご報告いただいてありがとうございます!

This post was modified 4か月 前 by わいひら

Share:
スポンサーリンク
わいひらをフォローする
おすすめサーバ
mixhost

プラン変更で負荷対策が行えるので、ブログ向きのレンタルサーバーです。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/2・QUIC(高速化プロトコル)に対応
◎プランのアップ・ダウングレードが自由自在
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎復元ポイントを指定して復旧可能(無料)
○サーバ引っ越しオプションあり(有料)
○アダルト・出会い系サイト可

安定感抜群のサーバーです。あまり急激なアクセス変動がないアフィリエイトサイトに向いています。

◎nginxを用いた高速サーバー(完全SSD)
◎老舗サーバーなので安定感抜群
◎ディスク容量が多い
◎転送量が多い
◎同サービス内でドメイン管理が可能
○http/2(高速化プロトコル)に対応
○毎日無料バックアップ(14日分)
△DBは7日分だけ無料復旧可能(ファイルは有料)
×プラン変更でCPUのスペックアップができない
×プラン変更しても即時反映されない
×アダルト・出会い系サイト不可

性能も兼ね備えながら安くブログ運営を開始したいのであればここ1択。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/2・QUIC(高速化プロトコル)に対応
◎東京・大阪でリージョン選択が可能
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎復元ポイントを指定して復旧可能(無料)
○サーバ引っ越しオプションあり(有料)
△アダルト・出会い系サイト可(条件あり)
△開始したてなので運営能力は未知数(対応良)

格安な値段で始められる高機能サーバーです。
性能も備えつつ最安ならここ。
サイトを続けるうちにアクセスが増えれば、プランのアップグレートで対応可能です。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎激安プランが用意してある
◎値段あたりのスペックが高い(コスパ良し)
◎サーバ引っ越しオプションあり(無料)
○http/2(高速化プロトコル)に対応
○アダルト・出会い系サイト可
△プランのアップは可能だがダウンは不可
△毎日自動バックアップ(1日分)
△前日のバックアップからのみ復元できる(無料)

Cocoon
  
動作中

ログイン または 登録 してください

タイトルとURLをコピーしました