• こちらは質問になり
    ます. サイドバーのdynamic_sidebar...
  • guest 
    こちらは質問になります.

    サイドバーのdynamic_sidebar('my_sidebar')なのですがデフォルト表示がされません。

    class my_widgets_item1の内容をそのまま引き継いでいます。
    cssも聞いていないです。(class="sidebar_widget"がstyle.cssに無い)

    wordpressは5.1.1を使用しています

    検索してもデフォルト情報が見つけられずにいます。
    最新版だとデフォルト機能が削除されているのでしょうか?
    回答 0

     
    ここでいうデフォルト表示がされないというのは具体的になにが表示されないのでしょうか?

    dynamic_sidebarが使えないということでしょうか?

    使えないとするとメリットエリアも表示されないということになります。

    まずは表示されない原因の切り分けをしましょう!

    guest 
    dynamic_sidebarは使えています。
    メリットエリアも正常に表示されています。
    管理画面でのright_sidebarもメリットウィジェットの項目に追加されていますが、right_sidebarにメリットウィジェットを追加するとメリットエリアと全く同じ編集画面が表示されます。

    [right_sidebarの編集画面]
    メリットウィジェット⬇︎

    タイトル:
    「inputエリア」
    内容:
    「textarea」

    削除:完了    保存しました。

    category.phpのhtml側はget_sidebarが読み込まれておりタグやクラス名共に詠み込まれていました。

    次にsidebar.phpでvar_dumpで変数を出力しました。

    「コード」
    <div id="sidebar" class="sidebar-widget">
    <?php dynamic_sidebar('my_sidebar'); ?>
    </div>

    <?php $a = dynamic_sidebar('my_sidebar'); ?>
    <?php var_dump($a); ?>

    bool(false)と返ってきました。

    これはdynamic_sidebarが読み込まれていないということでしょうか?


    こちらはfunctions.phpのウィジェットエリア作成の為の記述になります。

    //ウィジェットエリアを作成する
    function my_widgets_area(){

    register_sidebar( array(
    'name' => 'メリットエリア',
    'id' => 'widget_merit',
    'before_widget' => '<div>',
    'after_widget' => '</div>'
    ));

    //ここからサイドバーの記述
    register_sidebar( array(
    'name' => 'right_sidebar',
    'id' => 'my_sidebar',
    'description' => 'サイドバー',
    'before_widget' => '<div>',
    'after_widget' => '</div>',
    'before_title' => '<h2>',
    'after_title' => '</h2>'
    ));
    }

    動画の11:45あたりでサイドバーのウィジェットエリアはワードプレスでデフォルトで用意されているとのことでしたので、ウィジェット自体がデフォルトで用意されていると認識していますが合っていますでしょうか?(現在functions.phpで記述したクラスでは無いやつ)

     
    ダイナミックサイドバーを表示できた場合はtrue、表示できなかった場合はfalseが表示されます。

    おそらくidがmy_sidebarの設定がちゃんと読み込めていないと思われます。
    またデフォルトで用意されているコードはwp-includes/widgets.php にdynamic_sidebarがあります。

    一度、修正したコードを退避させてWordPressのディレクトリを削除し、再度WordPressをインストールし直してみてください。
    また、インストール後にfunctions.phpのカスタムウィジェット部分の記述のみ残し、
    他はコメントアウトした上で管理画面上で動作を確認してみてください。

    guest 
    返信ありがとうございます。

    再度、インストールした所正常に表示されました。

    ありがとうございます。

    テーマディレクトリを移したあと
    htdocs->wordpressディレクトリ削除
    DBのwordpress drop
    再度、インストール
    themesにテーマディレクトリ
    で正常作動かつテーマ引き継ぎもできました。