KnowAllテーマのサイドバーについて

こちらは、KnowAll を使っていて、ブログ機能をオンにして、サイドバーを使う人のための記事です。また、「ちょこっと開発」の力を付けていきたい方にぴったりの記事だと思います。

不具合について

KnowAllは、ブログ機能はデフォルトでオフです。おそらく、ブログ機能は「補助的」なため、しっかりとデバッグ、テストが行われていないと思われます。

その結果、2020/03/06 現在、ブログ機能でサイドバーを使うと、ウィジェットとコンテンツの間に余白がありません。

調査方法

まず、現象を確認します。きれいに表示されている固定ページや、ナレッジ記事と、余白がないブログ記事のソースコードを比較します。

すると、サイドバーとコンテンツを含む div に怪しい箇所を見つけました。ht-page--sidebaroffを ht-page--sidebarright に切り替えてみました(うまく表示しているものと比較)。するとうまくいきました。

次にこのソースコードを表示している場所を探します。Query Monitor でブログページ、ブログの個別ページをチェックしたら、それぞれ、 index.php と single.php でした。

それらのソースコードで、該当の部分をチェックしたところ、以下のように書かれていました。ここから、 ht_sidebarpostion_blog とタイプミスのような関数があります。

<?php get_header(); ?>  <!-- .ht-page --> <div> 	<div>  		<?php ht_get_sidebar_blog( 'left' ); ?>  (続く)

この関数を探すと、 inc/template_functions.php に、以下のように記述されていました。しかし、タイプミスが気になる・・・。

// Blog Sidebar Position function ht_sidebarpostion_blog() {   $ht_blogsidebar = get_theme_mod( 'ht_setting__blogsidebar', 'off' );   // Check if there are any widgets in widget area before adding class   if ( is_active_sidebar( 'sidebar-blog' ) ) :     echo 'ht-page--sidebar' . esc_attr( $ht_blogsidebar );   else :     echo 'ht-page--sidebaroff';   endif; }

ht_setting__blogsidebar のデータを取り出した時、デフォルト値を off とするとなっていますところで、 ht_setting__blogsidebar という設定を行う項目らしいものが、外観 > カスタマイズにはありません。ページはありますが・・・。

ということで、この値を right などにセットすれば解決するんじゃないか?と考えました。

解決方法

Code Snippet に以下のように記載し、Activateします。その後、一度サイトを開きます。ブログ一覧や、ブログの個別ページをチェックします。

set_theme_mod( 'ht_setting__blogsidebar', 'right' );

これで、正しく表示されていれば、このスニペットを「deactive」にします。

テーマの設定を、設定するための関数なので「一度だけ」実行すればOKです。逆に、毎回呼び出すと、サイトの動作が(若干)遅くなります。また、不要な操作をしているのは、気持ちが悪いですし。

以上で解決しました。

1番の解決は、KnowAll の ブログのサイドバー機能が有効になることでしょう。なお、上記の right のところは、 null とすれば、サイドバーなしのデザインになります。left とすれば、左側に表示されます。

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

まだ解決しましませんか? お問い合わせ お問い合わせ