フォーマットされたテーブルのようなメニューを作成する
-
-
この質問は、約2週間前に別のユーザー名で投稿しました.それは「ワードプレスWYSIWYGエディターで編集可能なレイアウトを設定する」と呼ばれていました.削除しましたが、Googleのキャッシュに残っています.これは、そのコピー/貼り付けに近いものです.しないでください.You posted this question under a different username about two weeks ago. It was called "Setting up an editable layout in the wordpress WYSIWYG editor". You removed it but it can still be found in Google's cache. This is a near copy/paste of that one. Please don't do that.
- 0
- 2013-01-02
- s_ha_dum
-
誤って削除してしまったため、再投稿する必要がありました.再投稿するつもりはありませんが、実際に見つからない場合は、なんらかの方法で元に戻す必要がありました.I had to re-post it because I accidentally deleted it and it wouldn't let me do it again. I don't mean to re-post but if it can't actually be found I needed to get it back up some how.
- 0
- 2013-01-02
- kia4567
-
これはHTML/CSSの質問であり、WordPressの質問ではありません.This is an HTML/CSS question, not a WordPress one.
- 0
- 2013-01-02
- s_ha_dum
-
WYSIWYGエディターを整理するプラグインを探しています.この場合、標準のパディング:10pxは機能しないので、ワードプレスに関係していると思います.I am looking for a plugin that organizes the WYSIWYG editor though. The standard padding: 10px isn't working in this case, so I believe it will have to do with wordpress.
- 0
- 2013-01-02
- kia4567
-
プラグインの推奨事項はトピックから外れています.[よくある質問]をご覧ください.Plugin recommendations are off topic. See the [faq].
- 0
- 2013-01-02
- s_ha_dum
-
1 回答
- 投票
-
- 2013-01-03
あなたの質問は、 XY問題の完璧な例だと思います. WordPressでは、投稿エディターでそのようなメニューを作成しません.メニューを使用します.
この時点から問題について考え始めると、すべてが簡単になります. :)
まず、このリストのカスタムナビゲーションメニューをテーマの
functions.php
に登録します:add_action( 'wp_loaded', 'wpse_78027_register_menu' ); function wpse_78027_register_menu() { register_nav_menu( 'services', __( 'A list of your services. Edit the description!', 'theme_textdomain' ) ); }
これで、
wp-admin/nav-menus.php
にメニューのインターフェイスが表示されます.次に、リンクテキスト以上のものを表示するカスタムウォーカーが必要です.幸運なことに、この問題は
発生しています.解決しました.非常に単純なマークアップが必要なので… /** * Custom walker to render the services menu. */ class WPSE_78027_Services_Menu extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth = 0, $args = NULL, $id = 0 ) { $output .= '<li>'; $attributes = ''; if ( ! empty ( $item->url ) ) $attributes .= ' href="' . esc_url( $item->url ) .'"'; $description = empty ( $item->description ) ? '<p>Please add a description!</p>' : wpautop( $item->description ); $title = apply_filters( 'the_title', $item->title, $item->ID ); $item_output = "<a $attributes><h3>$title</h3> <div class='service-description'>$description</div></a>"; // Since $output is called by reference we don't need to return anything. $output .= apply_filters( 'walker_nav_menu_start_el' , $item_output , $item , $depth , $args ); } }
次に、そのメニューにページを追加する必要があります.説明を編集することを忘れないでください.または、
そのフィールドを強制してください見えるようにする: そして今それを一緒に貼り付けます.メニューを使用するページテンプレートPHPファイルを開き、以下を追加します.
wp_nav_menu( array ( 'container' => FALSE, 'depth' => 1, 'items_wrap' => '<ul id="service-menu">%3$s</ul>', 'theme_location' => 'services', 'walker' => new WPSE_78027_Services_Menu ) );
完璧です.
スタイルシートでは、他のテーブルに影響を与えることなく、このリストのスタイルを設定できます.
サンプルコード:
#service-menu { background: #aaa685; border-collapse: separate; border-spacing: 10px; display: table; width: 100%; } #service-menu, #service-menu li { border: 3px solid #e9e9e9; } #service-menu li { display: table-cell; list-style: none; padding: 10px; width: 25%; } #service-menu, #service-menu a { color: #fff; } #service-menu h3 { font: bold 1.5em/1 serif; margin: 0 0 .5em; text-transform: uppercase; } .service-description { font: .9em/1.4 sans-serif; }
結果:
この回答を書くには、コードを書くよりも時間がかかりました. :)
I think your question is a perfect example for the XY Problem. In WordPress you do not create such a menu in a post editor. You use a menu.
Once you start thinking about your problem from this point, everything is easy. :)
First register a custom navigation menu for this list in your theme’s
functions.php
:add_action( 'wp_loaded', 'wpse_78027_register_menu' ); function wpse_78027_register_menu() { register_nav_menu( 'services', __( 'A list of your services. Edit the description!', 'theme_textdomain' ) ); }
Now you get an interface for the menu in
wp-admin/nav-menus.php
.Then you need a custom walker to show more than just the link text. You are lucky, this problem has been solved too. You need very simple markup, so …
/** * Custom walker to render the services menu. */ class WPSE_78027_Services_Menu extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth = 0, $args = NULL, $id = 0 ) { $output .= '<li>'; $attributes = ''; if ( ! empty ( $item->url ) ) $attributes .= ' href="' . esc_url( $item->url ) .'"'; $description = empty ( $item->description ) ? '<p>Please add a description!</p>' : wpautop( $item->description ); $title = apply_filters( 'the_title', $item->title, $item->ID ); $item_output = "<a $attributes><h3>$title</h3> <div class='service-description'>$description</div></a>"; // Since $output is called by reference we don't need to return anything. $output .= apply_filters( 'walker_nav_menu_start_el' , $item_output , $item , $depth , $args ); } }
Now you have to add the pages to that menu. Do not forget to edit the description, or force that field to be visible:
And now stick it together. Open the page template PHP file where you want to use the menu and add:
wp_nav_menu( array ( 'container' => FALSE, 'depth' => 1, 'items_wrap' => '<ul id="service-menu">%3$s</ul>', 'theme_location' => 'services', 'walker' => new WPSE_78027_Services_Menu ) );
Perfect.
In your stylesheet you can style this list now without affecting any other table.
Sample code:
#service-menu { background: #aaa685; border-collapse: separate; border-spacing: 10px; display: table; width: 100%; } #service-menu, #service-menu li { border: 3px solid #e9e9e9; } #service-menu li { display: table-cell; list-style: none; padding: 10px; width: 25%; } #service-menu, #service-menu a { color: #fff; } #service-menu h3 { font: bold 1.5em/1 serif; margin: 0 0 .5em; text-transform: uppercase; } .service-description { font: .9em/1.4 sans-serif; }
Result:
Writing this answer took more time than writing the code. :)
-
同じ名前の4つのリンクはスクリーンリーダーのユーザーにとって非常に煩わしく、ボックス全体がリンクであるため、_続きを読む_を削除しました.I dropped the _Read More_, because four links with the same name are super annoying for screen reader users, and the whole box is a link.
- 0
- 2013-01-03
- fuxia
-
あなたの素晴らしいtoscho!私は今夜これに取り組んでいます、もし私があなたにポイントを与えることができれば(あなたがそれらを必要としているわけではありません.ハハ)、それはあなたがこの長い答えを書くためにあなたの一日の時間を割いてくれてありがとう私のために.そのXYの問題を調査するので、次回は必ず正しい質問をします.ありがとうございました!Your amazing toscho! I'll be working on this tonight, if I could give you points I would (not that you need them. Haha) but it would be to show you how much I appreciate you taking the time out of your day to write this long answer for me. I'll look into that XY problem so I be sure to ask the correct question for next time. THANKYOU!
- 1
- 2013-01-03
- kia4567
数週間前にサイトを立ち上げたばかりで、さらにいくつかの機能を追加していますしかし私の友人は、ワードプレス上にコンテンツをレイアウトするためのより簡単な方法がなければなりません.私もそれで苦労していて、半分をコーディングしています(または、少なくともスタイルを追加したり、CSSを調べたりしています)
私は特にサービス(このテストページでほとんど唯一のもの)とそれらをレイアウトする方法を見ています.それらは私が使い方を忘れたと思う醜いテーブルにありますが、他にどのようにこのようなコンテンツをレイアウトすることになっていますか?私の生活を楽にするプラグインはありますか(プレミアム?-タイプやビューについて聞いたことがありますが、それは良いプラグインですか?)
しかし、これまでの作業で、これらのセル内にパディングを入れるための最良の方法は何ですか?ほとんどすべてを試しましたが、機能しないか、ページ(になる元のページ)のすべてのテーブルに影響します.ここにあります).
ここに文字化けしたテーブルコードを追加しましたので、ご覧ください.