KnowAll のブログのサイドバーの不具合を無理やり解決

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

不具合について

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

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

調査方法

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

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

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

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

<?php get_header(); ?>

<!-- .ht-page -->
<div class="ht-page <?php ht_sidebarpostion_blog(); ?>">
	<div class="ht-container">

		<?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 とすれば、左側に表示されます。


🚩お知らせ

toieeLabでは、知識・経験ゼロから、「単なる製作代行ではなく」、WordPressの仕組み、デザイン、コピー、SEO対策、ビジネスモデル、ビジネスシステム構築技術を身につけ、仕事を受注できるようになるためのオンラインコースを準備しています。

ただのオンラインコースではなく、オンラインコースサポートサイト学習コミュニティ(非公開)、個別サポート、オンラインワークショップを通して、一人ひとりの学習をサポートするサポート型のオンラインコースです。

現在、オンラインコースの一部を無料公開しています。ご興味のある方は、ぜひ、ご覧ください。

コメントする