Wordpressにお詳しい方ご教授ください。
現在BizVektorをカスタマイズしながらWordpressを勉強中なのですが、BizVektorの管理画面、「外観」内のオリジナルメニュー「テーマオプション」の画面で、「トップページの設定」「****Rエリア」というのがあります。これを4つにしようと思い、BizVektorのincファイルにあるtheme-options.phpとtheme-options-edit.phpのそれぞれ「prX」という部分をコピーペーストでpr4を作成しました。
これによって「テーマオプション」画面の表示が4つになり、データを画面上で入力できるようにはなったのですが、「保存」を押してもデータを受け取ってもらえません。PHPはまったくの素人で少しずつ覚えて初めている段階で、これ以上何をしたらよいのか…2日間画面とにらめっこしてお手上げ状態です。
お忙しい中大変申し訳ないのですが、どなたかお詳しい方やさしく教えていただけないでしょうか。
よろしくお願いいたします。
みんなの回答 8 件
むつかしいね
保存する処理のところで、コピーして新しくできた入力内容の保存処理を追記する必要があるのでは?
コピペした部分を見ないと何が間違いかわからないですよー。
コメントに返信できなかったので、こちらから
<dd><input type="text" name="this_site_theme_options[pr4_title]" id="pr4_title" value="<?php echo esc_attr( $options['pr4_title'] ); ?>" />
</dd>
<dd><textarea cols="15" rows="3" name="this_site_theme_options[pr4_description]" id="pr4_description" value=""><?php echo esc_attr( $options['pr4_description'] ); ?></textarea></dd>
<dd><input type="text" name="this_site_theme_options[pr4_link]" id="pr4_link" value="<?php echo esc_attr( $options['pr4_link'] ); ?>" /></dd>
<dd><input type="text" name="this_site_theme_options[pr4_image]" id="pr4_image" value="<?php echo esc_attr( $options['pr4_image'] ); ?>" /></dd>
<dd><input type="text" name="this_site_theme_options[pr4_image_s]" id="pr4_image_s" value="<?php echo esc_attr( $options['pr4_image_s'] ); ?>" />
</dd>
これと…
/*-------------------------------------------*/
/* トップページPR
/*-------------------------------------------*/
function this_site_topPR() {
$options = this_site_get_theme_options();
$pr1_title = $options['pr1_title'];
$pr2_title = $options['pr2_title'];
$pr3_title = $options['pr3_title'];
$pr4_title = $options['pr4_title'];
$pr1_description = $options['pr1_description'];
$pr2_description = $options['pr2_description'];
$pr3_description = $options['pr3_description'];
$pr4_description = $options['pr4_description'];
$pr1_link = $options['pr1_link'];
$pr2_link = $options['pr2_link'];
$pr3_link = $options['pr3_link'];
$pr4_link = $options['pr4_link'];
$pr1_image = $options['pr1_image'];
$pr2_image = $options['pr2_image'];
$pr3_image = $options['pr3_image'];
$pr4_image = $options['pr4_image'];
$pr1_image_s = $options['pr1_image_s'];
$pr2_image_s = $options['pr2_image_s'];
$pr3_image_s = $options['pr3_image_s'];
$pr4_image_s = $options['pr4_image_s'];
if ($pr1_title || $pr2_title || $pr3_title || $pr4_title) {
?>
<!-- [ #topPr ] -->
<div id="topPr">
<div id="topPrLeft" class="topPrOuter">
<div class="topPrInner">
<h3 class="topPrTit"><a href="<?php echo $pr1_link ?>"><?php echo $pr1_title ?></a></h3>
<?php if ($pr1_image) { ?>
<div class="prImage">
<a href="<?php echo $pr1_link ?>">
<img src="<?php echo $pr1_image ?>" alt="<?php echo $pr1_title ?>イメージ" class="imageWide" />
<img src="<?php echo $pr1_image_s ?>" alt="" class="imageSmall" />
</a>
</div>
<?php } ?>
<div class="topPrTxtBox">
<p class="topPrDescription"><a href="<?php echo $pr1_link ?>"><?php echo $pr1_description ?></a></p>
<div class="moreLink"><a href="<?php echo $pr1_link ?>">詳しくはこちら</a></div>
</div>
</div>
</div><!-- /#topPrLeft -->
<div id="topPrCenter" class="topPrOuter">
<div class="topPrInner">
<h3 class="topPrTit"><a href="<?php echo $pr2_link ?>"><?php echo $pr2_title ?></a></h3>
<?php if ($pr2_image) { ?>
<div class="prImage">
<a href="<?php echo $pr2_link ?>">
<img src="<?php echo $pr2_image ?>" alt="<?php echo $pr2_title ?>イメージ" class="imageWide" />
<img src="<?php echo $pr2_image_s ?>" alt="" class="imageSmall" />
</a>
</div>
<?php } ?>
<div class="topPrTxtBox">
<p class="topPrDescription"><a href="<?php echo $pr2_link ?>"><?php echo $pr2_description ?></a></p>
<div class="moreLink"><a href="<?php echo $pr2_link ?>">詳しくはこちら</a></div>
</div>
</div>
</div><!-- /#topPrCenter -->
<div id="topPrRight" class="topPrOuter">
<div class="topPrInner">
<h3 class="topPrTit"><a href="<?php echo $pr3_link ?>"><?php echo $pr3_title ?></a></h3>
<?php if ($pr3_image) { ?>
<div class="prImage">
<a href="<?php echo $pr3_link ?>">
<img src="<?php echo $pr3_image ?>" alt="<?php echo $pr3_title ?>イメージ" class="imageWide" />
<img src="<?php echo $pr3_image_s ?>" alt="" class="imageSmall" />
</a>
</div>
<?php } ?>
<div class="topPrTxtBox">
<p class="topPrDescription"><a href="<?php echo $pr3_link ?>"><?php echo $pr3_description ?></a></p>
<div class="moreLink"><a href="<?php echo $pr3_link ?>">詳しくはこちら</a></div>
</div>
</div>
</div><!-- /#topPrRight -->
<div id="topPrfour" class="topPrOuter">
<div class="topPrInner">
<h3 class="topPrTit"><a href="<?php echo $pr4_link ?>"><?php echo $pr4_title ?></a></h3>
<?php if ($pr4_image) { ?>
<div class="prImage">
<a href="<?php echo $pr4_link ?>">
<img src="<?php echo $pr4_image ?>" alt="<?php echo $pr4_title ?>イメージ" class="imageWide" />
<img src="<?php echo $pr4_image_s ?>" alt="" class="imageSmall" />
</a>
</div>
<?php } ?>
<div class="topPrTxtBox">
<p class="topPrDescription"><a href="<?php echo $pr4_link ?>"><?php echo $pr4_description ?></a></p>
<div class="moreLink"><a href="<?php echo $pr4_link ?>">詳しくはこちら</a></div>
</div>
</div>
</div><!-- /#topPrfour -->
</div>
<!-- [ #topPr ] -->
この部分です。。。
優しい回答で無く恐縮ですが、この辺り有償で対応するレベルだと思います。
それでも自身で頑張りたいと言うのであれば、wordpressのsettingAPIを勉強される事をお勧めします。
ちなみにデータの保存自体は、設定さえ正しければsettingAPIが自動で行います。
Settings API - WordPress Codex 日本語版
http://wpdocs.sourceforge.jp/Settings_API何にしても、純粋なテーマ部分以外の改造は、PHPを覚えている最中、という方が手を出す物ではないと思います。ただでさえWordpressは複雑ですしね。
Wordpressのことはちょっと詳しくないですが、変数のdumpを確認して、どこで上手くデータがおかしくなってるのかと地道に探していくくらいしか無いと思いますね。少額の仕事を依頼できるサイトとかはあるので、もし貴方が仕事でWordpressの改造をしているのなら、この手のサイトを利用してみるのも手ではないでしょうか?
勉強のために改造しているのなら、まずは純粋にPHPとかの知識を突き詰めていくのが先かと思います。
ランサーズ - 仕事をフリーランスに発注できるクラウドソーシングサービスLancers
http://www.lancers.jp/PHPわからない人に、PHPの説明するのは難しいのではないかと普通に感じた。
関連するトピックス