サポート » 使い方全般 » サイドバーウィジェット h2タグ から div に変更したい。

  • 解決済 sato_ru

    (@sato_ru)


    WordPress 初心者です。

    サイドバーウィジェットが、 h2タグなってしまい、SEO内部対策上不要なため、divに変更したいのですが、フォーラムを見たりググったりしましたがやり方がわかりません。

    どなたかご教示お願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • まったくの勘なのでヒントとして捕らえてください。

    register_sidebarでどうにかできませんか。

    あるいはお使いのテーマにあるfunction.php内で書き換えができないでしょうか。
    これはデフォルトの「twentytenテーマ」にある関数の一部です。
    この例ではh3に書き換えられています。デフォルトはh2になっているのが上で示したリンク先を見るとわかります。

    function twentyten_widgets_init() {
    	// Area 1, located at the top of the sidebar.
    	register_sidebar( array(
    		'name' => __( 'Primary Widget Area', 'twentyten' ),
    		'id' => 'primary-widget-area',
    		'description' => __( 'The primary widget area', 'twentyten' ),
    		'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
    		'after_widget' => '</li>',
    		'before_title' => '<h3 class="widget-title">',
    		'after_title' => '</h3>',
    	) );......

    めんどくさければコア(/wp-includes/widgets.php)にある、477行目の

    function register_sidebars($number = 1, $args = array()) {
    	global $wp_registered_sidebars;
    	$number = (int) $number;
    
    	if ( is_string($args) )
    		parse_str($args, $args);
    
    	for ( $i = 1; $i <= $number; $i++ ) {
    		$_args = $args;
    
    		if ( $number > 1 )
    			$_args['name'] = isset($args['name']) ? sprintf($args['name'], $i) : sprintf(__('Sidebar %d'), $i);
    		else
    			$_args['name'] = isset($args['name']) ? $args['name'] : __('Sidebar');
    
    		// Custom specified ID's are suffixed if they exist already.
    		// Automatically generated sidebar names need to be suffixed regardless starting at -0
    		if ( isset($args['id']) ) {
    			$_args['id'] = $args['id'];
    			$n = 2; // Start at -2 for conflicting custom ID's
    			while ( isset($wp_registered_sidebars[$_args['id']]) )
    				$_args['id'] = $args['id'] . '-' . $n++;
    		} else {
    			$n = count($wp_registered_sidebars);
    			do {
    				$_args['id'] = 'sidebar-' . ++$n;
    			} while ( isset($wp_registered_sidebars[$_args['id']]) );
    		}
    		register_sidebar($_args);
    	}
    }

    をdivに書き換えてしまうというのも手かもしれませんが、functionで書き換えられるようになっているので、それを使うのが第一でしょう。
    この関数をfunction.phpに貼ってしまって、divに書き換える、っていうのでもいけた気がしますが、荒ワザでしょうか。他の皆さんはどう思われますか?

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    他の皆さんはどう思われますか?

    とのことなので援護射撃を。
    mogueさんのおっしゃるとおり、お使いのテーマのfunctions.phpで変更するのがよいと思います。

    sato_ruさんがTwentyTenをお使いなら上述の通りでOKでしょうし、
    他のテーマをお使いの場合でも該当する部分を書き換えればいいはずです。
    (自作テーマや、functions.phpがないテーマということもあり得ますのでケースバイケースですが)

    >sato_ruさん
    と、いうことでまずはお使いのテーマが何なのか開示してください。

    トピック投稿者 sato_ru

    (@sato_ru)

    mogueさん、mypacecreatorさん、どうもありがとうございます。

    テーマは、「ホームページビルダー17
    *「JustSystems Homepage Builder Version 17.0.3.0 for Windows」によって作成されました。とテーマの管理のところに記載されています。

    function.php の register_sidebar を下に表記しましたが、該当すH2タグが書かれていません。

    また、コア(/wp-includes/widgets.php)とのことですが、
    /wp-includes/
    の配下に
    widgets.php
    が存在しません。「widgets」と名の付くものは
    default-widgets.php
    のみとなります。

    よろしくお願い申し上げます。

    register_sidebar();
    
    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size( 550, 400, true );
    
    register_post_type(
    	'news',
    	array(
    	'label'         => 'ニュース',
    	'hierarchical'  => false,
    	'public'        => true,
    	'has_archive'   => true,
    	'supports'      => array(
    	'title',
    	'editor',
    	'thumbnail',
    	'comments'
    	),
    	'menu_position' => 5,
    	'menu_icon'     => get_bloginfo('template_url') . '/post-types/menu_news.png'
    	)
    );
    
    register_taxonomy(
    	'newscat',
    	'news',
    	array(
    	'label'        => 'ニュースのカテゴリー',
    	'hierarchical' => true,
    	)
    );
    
    function manage_news_columns( $columns ) {
    	$columns['fcategory'] = "カテゴリー";
    	return $columns;
    }
    
    function add_news_column( $column_name, $post_id ){
    	if ( 'fcategory' == $column_name ) {
    		$fcategory = get_the_term_list( $post_id, 'newscat' );
    		if ( $fcategory ) {
    			echo $fcategory;
    		} else {
    			echo __('None');
    		}
    	}
    }
    
    add_filter( 'manage_edit-news_columns', 'manage_news_columns' );
    add_action( 'manage_news_posts_custom_column',	'add_news_column', 10, 2 );
    
    add_action('admin_head', 'plugin_header_news');
    function plugin_header_news() {
    	global $post_type;
    ?>
    <style>
    	<?php if (($_GET['post_type'] == 'news') || ($post_type == 'news')) : ?>
    		#icon-edit { background: url('<?php echo get_bloginfo('template_url') . '/post-types/icon_news.png';?>') no-repeat transparent; background-size:auto !important; }
    	<?php endif; ?>
    </style>
    <?php
    }
    
    if ( ! isset( $content_width ) )
    	$content_width = 648;
    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    それだったら、挙げてもらったコードの1行目

    register_sidebar();

    が該当しますね。2行目以降は関係ないです。

    詳しくは、
    関数リファレンス/register sidebar – WordPress Codex 日本語版
    を参照していただくとわかりますが、
    register_sidebar();の()内に、必要な設定を追記すればOKです。
    ※括弧内が空、ということはすべてWordPress側が定めた初期設定値を適用している、という意味です。

    Codexを読むとregister_sidebarのパラメータ一覧は

    name – サイドバー名
    id – サイドバー id
    description – サイドバーの説明 (2.9以降)
    before_widget – ウィジェットの前のテキスト
    after_widget – ウィジェットの後のテキスト
    before_title – タイトルの前のテキスト
    after_title – タイトルの後のテキスト

    となっています。

    今回は、ウィジェットのタイトルにあたる見出し部分のマークアップ変更なので、
    before_title – タイトルの前のテキスト
    after_title – タイトルの後のテキスト
    だけを変更すればOKです。

    register_sidebar( array(
    	'before_title' => '<div>',
    	'after_title' => '</div>'
    ) );

    こんな感じですね。
    変な全角スペースやコンマ、括弧の閉じミス等にご注意を。

    トピック投稿者 sato_ru

    (@sato_ru)

    mypacecreatorさん、どうもありがとうございました!

    OKでした。うまくいきました!

    本当にありがとうございました。

    本件は、SEO内部対策を中心したSEO対策会社のエンジニアから、アルゴリズム解析からH3タグは1ページに4つ以下が最適という指示を頂戴したためでした。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「サイドバーウィジェット h2タグ から div に変更したい。」には新たに返信することはできません。