サポート » 使い方全般 » 2つ目のサイドバーの編集について

  • 解決済 nabe

    (@nabe)


    http://relife.adinfo7.comでサイト制作をしていますが
    2つめのサイドバーの編集で悩んでいます。
    右サイドバーの編集でカテゴリーとブログロールを消したいのですが
    どこのPHPかがわかりません・・・
    ウィジェットとは違く,最初のテーマからひっついていました。

    左のサイドバーにも着いていたのですがそちらはサイドバーPHPを編集して理解できました
    しかし右のサイドバーのPHPがどこにあるかわかりません

    どなたか教えて頂けませんか???宜しくお願いします。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • index.phpに直接記述されているのではないですか?
    でなくても、index.phpでincludeされている箇所を見つければよいと思います。
    最初のテーマとはどのテーマのことをおっしゃっているのでしょう?

    名前から判断するとウィジェットのような気がしますが・・・

    ウィジェットは中身を空にしても表示されますので、

    現在のウィジェット
    (複数だとセレクトボックスで対象のサイドバーを選ばなければならないかもしれません)

    対象の「編集」

    削除・・・これがなされているか今一度ご確認ください

    変更を保存

    いずれにせよデフォルトのテンプレートではないですよね

    shokun0803さん書き込みありがとうございます

    現在のindex.phpです。
    includeの箇所がわかりません。includeの役割もわかりません。すいません初心者で・・・
    それと最初のテーマとは,現在のテーマです。

    <?php get_header(); ?>
    <?php get_sidebar(); ?>

    <!– Content –>
    <div id=”content”>

    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <!– Post –>
    <div class=”post” id=”post-<?php the_ID(); ?>”>
    <div class=”post-title”>
    <div class=”post-date”>
    <span><?php the_time(‘d’) ?></span>
    <?php the_time(‘M’) ?>
    </div>
    <h2>” rel=”bookmark” title=”Permanent Link to <?php the_title_attribute(); ?>”><?php the_title(); ?></h2>
    <!–Author: <?php the_author() ?>  //  Category: <?php the_category(‘, ‘) ?> –>
    </div>
    <div class=”post-entry”>
    <?php the_content(‘Read more…’); ?>
    </div>
    <div class=”post-info”>
    <?php comments_popup_link(‘Comments (0)’, ‘Comment (1)’, ‘Comments (%)’); ?>  //  #respond”>Add Comment
    </div>
    </div>
    <!– /Post –>
    <?php endwhile; ?>
    <!– Navigation –>
    <div class=”navigation”>
    <div class=”navigation-previous”><?php next_posts_link(‘« Previous Entries’) ?></div>
    <div class=”navigation-next”><?php previous_posts_link(‘Next Entries »’) ?></div>
    </div>
    <!– /Navigation –>
    <?php else : ?>
    <!– Post –>
    <div class=”post”>
    <div class=”post-title”>
    <h2>Not Found</h2>
    </div>
    <div class=”post-entry”>
    <p>Sorry, but you are looking for something that isn’t here.</p>
    </div>
    </div>
    <!– /Post –>
    <?php endif; ?>

    <div class=”clear”></div>

    </div>
    <!– /Content –>

    <?php get_footer(); ?>

    tezukuriyaさん書き込みありがとうございます。

    Sidebar Rightのウィジェットは中身を空にしました。(一時的に)
    http://relife.adinfo7.com
    ですが,やはりカテゴリーとブログロール表示が出てしまいます。

    それとデフォルトって良く耳にするんですけど意味が解ってない(汗)

    <?php get_sidebar(); ?>の部分でサイドバーを読み込んでいます。(PHP的に言うとinclude=インクルードという意味になるのでこう書いてしまいました)
    index.phpの中で直接指定してはいないようですね、sidebar.phpの中にdynamic_sidebar(1)やdynamic_sidebar(2)の記述がありませんか?この記述があればtezukuriyaさんの記述されているやり方でできると思いますよ。

    もし記述がなければsidebar.phpの中で直接記述されているかもしれません。

    それとデフォルトって良く耳にするんですけど意味が解ってない(汗)

    wordpressを最初にインストールしたときに最初から適用されていたテンプレートのことを言っているのですね。

    shokun0803さん度々ありがとうございます。

    サイドバー (sidebar.php)です。
    <!– Sidebar –>
    <div class=”sidebar”>

    <?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(1) ) : ?> 

    <?php endif; ?>

    </div>
    <!– Sidebar –>
    です。dynamic_sidebar(1) があります。

    tezukuriyaさんの記述されているやり方で対象の「編集」

    削除をやろうとすると
    0 個のウィジェットを “Sidebar Right” サイドバーで使用しています。
    で対象が0 個と無く
    カテゴリーとブログロールがどこにも表示されません。
    やはり,ウィジェットじゃないんですかね?

    なんかウィジェットをいれると,元々のサイドバーが消えてウィジェットが
    優先される認識でいたのですがこのテーマだとウィジェットを指定しても消えないんです・・・

    こんばんは。
    はき出されているXHTMLを見ると、↓

    <div class="clear"></div>
    </div>
    <!-- /Content -->
    <?php get_footer(); ?>

    index.phpの以下にあたる箇所のContentとget_footerの間に

    <!-- Sidebar -->
    <div class="sidebar sidebar-right">
    </div>
    <!-- Sidebar -->

    となっています。ここから考えられるのはfooter.phpです。footer.phpの中にコーディングされていないでしょうか?

    shokun0803さんがおっしゃってるように、テーマ名とそのダウンロード先を書いていただければ、もっとスムーズにやりとりが行え、的確にお答えできると思います。

    なお、余談ですが、コーディングレベルではメインコンテンツの前にサイドバーがくるのは、構造化とCEOの観点から見て好ましくありません。サイドバーはコンテンツの後に記述して、左や右へはCSSで設定します。

    Toruさん,こんばんは。メッセージありがとうございます。
    このテーマはElegant Jewelで
    http://www.wptmp.com/browse/color/white/
    にあります。

    Toruさんの言う通りfooter.phpっぽいです。
    しかし中身を見てみると
    <?php eval(gzinflate(base64_decode(“jZNbj5swEIWfs9L+hwkPDUglrto+pUCU3aoPVStV275HBgZwY2xkO0lT7Y9fgw3ZjdKLlIt9Zs7n5HhYZ8k8juE7KzGnCuI4u72ZzZKSHaDgVOs00L7kv2PF6sYEQ1v/niXNu+yeGqylYqgTYrdO33O3mCXrrung2G0502ZbTL3hwjDD0crpIvoAa+8jo3HC33FZK8n5v+G5lLuWqp1lj+f8xvTNq/85aACxCkKYV3tRGCbFFn9ZqoWVJ0FbVmx9CIsIHh9hfqGGbyOIYDXyn1FRlKwaDx4CJjZhF/WV+C+voOBIVZBNJvty6+efvdizyFfKhCeN2icpDY74gczKNKgGNfCNrvNedqfhhl+MQt9djJXAx5crIFlYRJMFS3B/N7f3xUQlw4XNB13kr2HDOTz0fRoeUKM6YLl0kI+oWS2sPT+tIKHQKKzSoDGmWxFyPB6XPxSzyNP7ZSHbIBt3CaGZA9zeXHPZRH/KXHMpSimc9c6G/Nlq8GUQewJcP3JjOBWGbjqqTIvCaHNwCF+Ac+UPFKOQuoZKKs0RO9oJpI4y7GEQ4Nz4l9+jd3aec0lVqfddJ5XpOSTIGpozQw2c60MsL+eLXF7rNEHXJsSm6WvO/I3WOFXGx80NT+gfp96Sy/Lkl41pefYE”))); ?>
    となっていてどこを変更したらいいか解りません・・・
    これは,なんかいつもと違いコーディング??されてるんですか???

    お使いのテーマからfooter.phpを抜き出しデコードしたところ<div class=”sidebar sidebar-right”>の記述やdynamic_sidebar(2)の記述が見つけられました。
    どうやらコピーライトを消されたくないためにfooterの内容を全てgzdeflateで圧縮し、解凍したものをevalでPHPコードとして実行させているようです。
    全てのコードを圧縮してまでコピーライトを守りたい気持ちは分かりますが、ユーザが変更できるサイドバー部分まで見えなくすること、さらにfooterにサイドバーを含めてしまう作り方には少々疑問を感じえませんが、このテンプレートを使用していく以上は我慢するしかありませんね。

    wordpressのウィジェットでサイドバー2を選択し、削除できないのは、footerのコードが

    <div class="sidebar sidebar-right">
    <h3>Categories</h3>
    <ul>
    <?php wp_list_categories('title_li='); ?>
    </ul>
    <h3>Blogroll</h3>
    <ul>
    <?php wp_list_bookmarks('categorize=0&title_li='); ?>
    </ul>
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar(2) ) : ?>
    <?php endif; ?>
    </div>

    のようになっているからだと思います。
    対処法としてはcssでclass「sidebar sidebar-right」の「h3」をdisplay:none;などとしてみるのはどうでしょうか。テンプレートを修正するよりはましかと思います。
    全てをnoneにしてしまうと、dynamic_sidebarそのものが消えてしまうことになるので、思ったような表示になるかは不明ですが・・・

    shokun0803さん

    解りやすい説明ありがとうございます。
    とても感謝します。

    フッターphpはどうやら圧縮してたんですね・・・ なるほど
    CSSで対処するとやっぱ思ったように表示できませんね

    もうここまでくると何が何でもカテゴリーとブログロールを消したいです。
    フッターPHPを解凍して変更したいのですが・・・

    gzdeflateで圧縮したやつを、解凍するにはどうすれば良いのですか???
    また、evalでPHPコードとして実行させるためにはそういったソフトかなにか必要??なのですか??

    footer.php では gzinflate() が返す文字列を eval() してますよね。
    つまり gzinflate() が返す文字列をそのまま出力させてやればコードを取得可能です。

    <?php echo gzinflate(base64_decode(...)); ?>

    これで表示された文字列をコピーして footer.php のコードすべてと置き換えればいいと思います。
    (ブラウザからコピーする場合はソースを表示して、ソースからコピー)

    # もし改変について気掛かりがあっても、作者の意向を汲んで (あるいは敬意を表して)
    # コピーライトをそのまま残しておけばいいでしょう。

    mizubeさん書き込みありがとうございます。

    <?php echo gzinflate(base64_decode(…)); ?>

    このコードをfooter.phpに挿入?ですか?
    正直、どこにどうやって表示させる(文字列の出し方)かわかっていません・・・
    詳細な説明をお願いします。お手数かけます。

    説明、わかりにくかったでしょうか?

    eval() は渡された文字列を PHP のコードとして実行しますので、今回の場合 gzinflate() が返す文字列は footer.php の生のテンプレートのコードである、ということになりますよね?

    gzinflate() が返す文字列を eval() ではなく echo などでそのまま出力すれば、 PHP のコードとして実行されない単なる文字列としてのテンプレートのコードが得られます。

    ただし、 Content-Type: text/html; として出力された場合、テンプレートのコードの HTML タグなどはブラウザ上ではその要素としてレンダリングされるので、ブラウザからテンプレートのコードをコピーする場合は HTML のソースを表示し、ソースからコピーする必要があります。

    で、手順としては

    1. footer.php のコードの eval(gzinflate(base64_decode("...省略...")));echo gzinflate(base64_decode("...省略...")); に書き換える
    2. 表示をブラウザで確認、マウスの右クリックなどからHTMLのソースを表示する
    3. ソースを見るとソース内の footer.php 部分に生のテンプレートの内容がそのまま出力されているので、該当する範囲をコピーし、 footer.php のコードすべてと、コピーしたテンプレートを置き換える
    4. 置き換えた footer.php のコード中の、カテゴリーとブログロールの箇所を削除する (コピーライトは残す)

    という流れでやればいいと思います。
    どこからどこまでが footer.php による出力か分からない場合は footer.php を

    <!-- BEGIN footer.php -->
    <?php echo gzinflate(base64_decode("...省略...")); ?>
    <!-- END footer.php -->

    のように書いてあげればソースを見た時分かりやすいかもしれません。

    # 何回か加筆修正しました。すみません。

    shokun0803さん,tezukuriyaさん,mizubeさん

    本当にありがとうございました。
    お陰様で無事にカテゴリーとブログロールを削除する事ができました。

    いやー とても嬉しいです。

    footer.phpに隠された謎に立ち向かい

    みなさんの助けがあって解読できたこと

    また,自分自身レベルが上がったと思います。

    shokun0803さん,tezukuriyaさん,mizubeさん本当にありがとうございました。

    皆様方の力をまた借りるかも知れません。

    その時はまた優しく教えて下さいね。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    このテーマはElegant Jewelで
    http://www.wptmp.com/browse/color/white/
    にあります。

    これは WordPress のテーマ配布サイトのようですがこういうサイトを利用すべきではありません。再配布可能なテーマを改造しているようで、footer.php のコード難読化もその一環のようです。テーマが安全なものかどうか検証されていないどころか、危険なコードを埋め込まれている可能性があります (そういう実例がありました)。

    テーマを探す場合、公式のテーマディレクトリ http://wordpress.org/extend/themes/ からダウンロードする以外の方法は行うのは危険です。

    全てのコードを圧縮してまでコピーライトを守りたい気持ちは分かりますが、ユーザが変更できるサイドバー部分まで見えなくすること、さらにfooterにサイドバーを含めてしまう作り方には少々疑問を感じえませんが、このテンプレートを使用していく以上は我慢するしかありませんね。

    いえ、このテンプレートの使用を即座に中止するべきだと思います。こういうコーディングをしている場合、マルウェアなど危険なコードが入っていても検出が困難であり、安全性を確認できないからです。

    おそらく、オリジナルの配布サイトを探せば、まもとなコーディングをした footer.php を含むテーマがあるはずですから、がんばって探してみてください。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「2つ目のサイドバーの編集について」には新たに返信することはできません。