• 解決済 p_chan_p_chan

    (@p_chan_p_chan)


    はじめまして。
    自分のやりたいことについて色々調べたのですがどうしても分からないのでアドバイスいただけたら幸いです。

    本当に初心者なので用語などうまく使えないと思うので分かりにくかったら本当に申し訳ありません。

    現在Corporate Theme v2というテーマでブログサイトを作成中です。
    このテーマはトップページ(?インデックスページ?)のようなものがあり、トップでしか現れないパーツのひとつに、bottombarというものがあります。
    このBottombarというものに、サイドバー感覚でウィジェット(?プラグイン?)を配置したいのです。

    サイドバー自体はそれはそれで使いたいのでサイドバーをそこへ読み込む方法では都合が悪いです。
    サイドバーを複数設ける方法(http://ja.forums.wordpress.org/topic/790?replies=6)が紹介してあり、これはいけるかも!?と思ったのですが、最後の最後にある「functions.php」のいじり方が分からず、結局断念。
    当該の方法ではfunctions.php」に『register_sidebars();』というくだりがありそこの()内に新しく設定したサイドバーの番号を入れる、とのことでしたが私の使っているテーマのfunctions.phpの記述は若干違っていて、
     

    <?php
    if ( function_exists(‘register_sidebar’) )
    register_sidebar(array(
    ‘before_widget’ => ‘<li id=”%1$s” class=”widget %2$s”>’,
    ‘after_widget’ => ”,
    ‘before_title’ => ‘<h2 class=”widgettitle”>’,
    ‘after_title’ => ‘</h2>’,
    ));

    ?>

    となっており、どこに(2)を入れたらいいのか、色々試行錯誤したのですがどうしても成功しませんでした。

    現在の状況はここまでです。

    では、一体どうしたいのかを申し上げますと、

    ・ボトムバーというフッター上部に配置される横型の形式は守りたい。
     (横型の、TOP(index)ページにだけ現れるサイドバーを新たに設ける方法があるのならそれでも十分です。)
    ・そこにウィジェット(?プラグイン?)を配置したい。
     (サイドバーに挿入されるウィジェットをTOPなどのページに単独で配置する方法を教えていただけるのでしたらそれでもいいです。また、上記にてやりそこなったサイドバーの増設方法、最後のfunction.phpへの記述方法をご教授くださるのならそれでも十分です。)

    ちなみにどうしても貼り付けたいプラグインはEvent Calendar3です。

    もしかしたらかなり初歩的でばかばかしい質問なのではないかと、恐縮しています。
    しかしこの壁にぶつかって以来全く進まず正直参ってしまっています。

    どうぞよろしくご回答くださいますようお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • p_chan_p_chanさん、こんにちは。

    テーマフォルダ内にあるbottombar.phpに

    <?php ec3_get_calendar(); ?>

    を追記すれば、とりあえずカレンダーは出てくるかと思います。
    ただし、追記する場所などによってレイアウトが崩れる場合もあります。

    ボトムバー内のどこにどのように掲載したいか教えて頂ければ、より具体的なコードを提示できるかもしれません。

    トピック投稿者 p_chan_p_chan

    (@p_chan_p_chan)

    jim912さま、こんにちは。
    早速のご丁寧なアドバイス本当にありがとうございます。
    早速挿入してみましたところ、確かに表示されました。
    とにかく表示ということであれほど悩んでいたことがいとも簡単に出来たことに感動しました。

    しかしやはりおっしゃるとおりレイアウトは崩れてしまいました。。。

    現在bottombar.phpのデフォルトからいくつか抜いて、
    ・カテゴリー一覧(リスト型式)
    ・アーカイブ一覧(月別)(リスト型式)
    のみを残してあります。
    記述は以下になります。(どこを抜いたらいいのかわからないので少々長くなりますがbottombar.phpの全てを転載します。ごめんなさい。)

    <div id=”bottombar”>

    <div id=”categoryx”>

    <h2 class=”bottombartitle”><?php _e(‘Categories’); ?></h2>
    <ul class=”list-cat”>
    <?php wp_list_categories(‘orderby=name&number=11&hierarchical=0&title_li=’); ?>

    </div>

    <div id=”archivex”>
    <h2 class=”bottombartitle”><?php _e(‘Archives’); ?></h2>
    <ul class=”list-archives”>
    <?php wp_get_archives(‘type=monthly&limit=11’); ?>

    </div>

    <?php ec3_get_calendar(); ?>

    <!–/bottombar –>

    このようにしたらEventCalendarがカテゴリリストとアーカイブリストの下に、ボトムバーいっぱいの幅で配置されてしまいます。
    これをカテゴリリスト・アーカイブリストの隣に並べたいのです。

    それと、すみません、当初のお願い投稿時の内容に追加になってしまうのですが、Eventcalendarのオプションのようなプラグイン、Event Calendar Widgetもさらにその横に並べたいです。
    (EventCalendarの方が簡単に入ればこちらも簡単に入るかと思いきや、試行錯誤したのですが全然ダメでした。。。教えていただいた式の構造を変化させて使えばいいや、と簡単に考えていたのですが。。。)

    いずれにしてもまだまだ勉強不足ですね。。。もっと頑張ります。

    申し訳ありませんが、アドバイスどうかよろしくお願いいたします。

    トピック投稿者 p_chan_p_chan

    (@p_chan_p_chan)

    連続投稿すみません。
    Eventcalendarが幅広になってしまう件ですが、スタイルシートをいじってみたら見事できました!

    そこで、申し訳ありませんが、Event calendar Widgetを挿入する式を教えていただけますか?
    こちらは相変わらず出来ません。。。

    お手数かと思いますが、どうかよろしくお願いいたします。

    p_chan_p_chanさん、こんにちは。

    まず、前置き。
    Event calendar Widgetは、間違ってなければEvent CalendarとUpcoming Eventsをウィジェットとして出力させるものなので、テンプレート上にec3_get_calendar(); やec3_get_events(5);と記述するのとあまり変わりはないと思います。

    で、サイドバーの複数実装ですが、提示されている関数はregister_sidebarsで、単なるregister_sidebarとは違います。1文字違っても全く異なるものなのです。
    じゃあ、利用しているテーマでどうすれば良いかというと、

    <?php
    if ( function_exists('register_sidebars') )
    register_sidebars( 2, array(
    'before_widget' => '<li id="%1$s" class="widget %2$s">',
    'after_widget' => '',
    'before_title' => '<h2 class="widgettitle">',
    'after_title' => '</h2>',
    ));
    
    ?>

    と変更していただければ、サイドバーを2つ管理できます。

    ちなみにsidebar.phpを2つ作成する必要はなく、bottombar.phpに

    <?php if ( function_exists('dynamic_sidebar') ) {
    dynamic_sidebar(2);
    } ?>

    と記述すれば2つ目のサイドバーが出力されると思います。

    あと、テンプレートに直接イベントカレンダーのコードを記述する場合は、プラグインを停止した場合にエラーとならないよう

    <?php if ( function_exists( 'ec3_get_calendar' ) ) {
    ec3_get_calendar();
    } ?>

    と書き直しておいた方が無難です。(ec3_get_eventsを使う場合も同様に。)

    トピック投稿者 p_chan_p_chan

    (@p_chan_p_chan)

    jim912さま、こんにちは。
    いつもわかりやすいアドバイスをありがとうございます。

    お恥しながらEventcalendar Widgetというものについて私は勘違いをしていたみたいです。
    上記のアドバイスのおかげで全てすっきりと解決しました。
    サイトも思い通りのデザインになりました。

    根っからの文系人間ですからこういう難しい式を見るだけで頭が痛くなるのですが、
    いろいろな工夫をしたりしながら試行錯誤を繰り返し、思ったとおりの結果を出してくれた時って
    ものすごい快感ですね。
    頂いたアドバイスや書いていただいたコード、本当に勉強になりました。
    いろいろな場面で参考にできそうです。
    これを機にもっともっと学んでいこうと思います。

    jim912さま、本当に本当にありがとうございました!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「トップ画面にウィジェットを挿入したい」には新たに返信することはできません。