サポート » 使い方全般 » 指定のニュースタイトルだけ記事自体がなく、リンクをクリックしたら別

  • 解決済 gapel

    (@gapel)


    PC:Windows7 64bit、32bit
    プログラミング:初心者
    HTML・CSS:基本は理解している

    新着ニュースエリアで導入したいことがあり、投稿いたしました。

    指定のニュースタイトルだけ記事自体がなく、リンクをクリックしたら別窓でURLを開かせるにはどのようにすればいいでしょうか?

    宜しくお願いします。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック投稿者 gapel

    (@gapel)

    追記です。
    現在のソースは以下のようになっております。
    どこをどう記述すれば完成できるでしょうか。

    <ul class="news">
    		<?php
    		$lastposts = get_posts('numberposts=5');
    		foreach($lastposts as $post) :
    			setup_postdata($post);
    		?>
    			<li><?php the_time('Y/m/d'); ?>:<a href="<?php the_permalink(); ?>" name="post-<?php the_ID(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
    			<?php
    			$days=30;
    			$today=date('U');
    			$entry=get_the_time('U');
    			$sa=date('U',($today - $entry))/86400;
    			if( $days > $sa ){
     	 			echo " <img src=\"/wp-content/themes/mytemp/img/home/iconnew.gif\" width=\"30\" height=\"16\" alt=\"NEW\" />";
     			}
    			?>
    
    			</li>
     		<?php endforeach; ?>
    		</ul>

    お手数おかけして申し訳ありませんが宜しくお願い致します。

    モデレーター Takuro Hishikawa

    (@hissy)

    ざっくりと

    $link = get_permalink();
    $link_target = '';
    if ( 何らかの条件分岐 ) {
    $link = どうにかしてゲットした別窓で開くURL;
    $link_target = ' target="_blank"';
    }
    <a href="<?php echo $link; ?>" name="post-<?php the_ID(); ?>" id="post-<?php the_ID(); ?>" <?php echo $link_target; ?>>

    別窓で開くURLは、カスタムフィールドにでも入れるのが良いかと。

    トピック投稿者 gapel

    (@gapel)

    済みません、引き続きお手数おかけしております。hissy様をはじめ皆様有難う御座いいます。

    「カスタムフィールド」の入力ボックスがが欲しいところですが、そういえば、昔のWPのバージョンですと
    投稿画面だったと思いますが、カスタムフィールド欄もそうですが、その他いくつも項目がページ下部に掲載されていたのに、WPを3.3にバージョンアップしてからだと思いますが、
    そういえばこれらの欄がなくなっておりました。

    それでさっき検索していて驚いたのですが、
    3.3になってGUIがなくなった、と書いてあるサイトを見ました。
    これって、要するに、誰のWP3.3でもこうなっちゃっているということですかね。
    以下のサイトです。

    http://blackcocoa.info/2011/wordpress-3-3%E3%81%A7custom-field-gui-utility%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E4%BB%B6.html

    なんでも、WPのどこかのファイルを加工すると見れるようになるとか何とか。。
    しかしそもそも方法自体信じていいものかどうかもありますし・・・。
    こんなことしないとカスタムフィールド欄を出現させることが、バージョンアップによってできなくなってしまったんでしょうか。別窓URLを記述して投稿することもできないなんてそんな・・・

    モデレーター Takuro Hishikawa

    (@hissy)

    とりあえず管理画面上部の「表示オプション」を確認してください

    トピック投稿者 gapel

    (@gapel)

    表示オプションは一度チェックしていたのです。ですがみあたらなかったので次に行っていたのですが、
    なんと、このWordPressの表示オプションというのは、開く画面によってそれぞれ違う内容が出るのですか!
    全く気づきませんでした・・・
    はぁ・・・HTMLが本当に高度なことができるようになっているんですね・・・・・
    お手数おかけして申し訳ないです・・・

    お陰様で次にいけます。次は、
    ・何らかの条件分岐
    ・どうにかしてゲットした別窓で開くURL
    という箇所にいったいどんなプログラミングと呼ばれるコードを入れていけばいいのか、それをネット検索して回ってみます。
    hissy様感謝申し上げます。

    トピック投稿者 gapel

    (@gapel)

    現在の該当箇所のソースは以下になっております。

    <li <?php post_class(); ?>><?php the_time('Y/m/d'); ?>:<a href="<?php the_permalink(); ?>" name="post-<?php the_ID(); ?>" id="post-<?php the_ID(); ?>"><?php the_title(); ?></a>
    </li>

    本当は教えていただいたNEWアイコン関連のソースがとの間に続きますが、
    本件には関連しないと思うので、割愛しております。

    hissy様ご提供のソースをじっと見ておりますが、「何らかの条件分岐」というところには、

    「$linkという入れ物(?)が空っぽならば、通常のタイトルリンクを生成しなさい。
    しかしそうではなくて、$link(カスタムフィールドの中になるのかな)に何かが入っていれば(URLになりますが)、それをタイトルリンクのURLにしなさい。
    そして、その時、「target=”_blank”」というソースをタイトルリンクのaタグ内に追加しなさい」
    というような意味なんでしょうか。

    ノンプログラマの当方にはわからない世界ですが、ネット検索しておりますと、どうやら条件分岐というものの性格と、やりたいことのストーリーを考えるとこんな意味になるのかしら?と思うのですが、そもそもこの考え方があっているのでしょうか。

    もしこれがあっているとしても、それでソースが書けるわけではないのですが一歩でも前へ・・・

    モデレーター Takuro Hishikawa

    (@hissy)

    仰るとおり、カスタムフィールドにURLがセットされているかどうかで分岐するのが良いと思います。

    カスタムフィールドの使い方
    関数リファレンス/get post meta

    トピック投稿者 gapel

    (@gapel)

    わやくちゃになっております・・・

    <ul class="news">
    		<?php
    		$lastposts = get_posts('numberposts=5');
    		foreach($lastposts as $post) :
    			setup_postdata($post);
    		?>
    
    			<?php
    			$link = get_permalink();
    			$link_target = '';
    			get_post_meta($post_id, $key, $single);
    			if ( $key = 'uri' ) {
    				$link = meta_key;
    				$link_target = ' target="_blank"';
    			}
    			<li <?php post_class(); ?>><?php the_time('Y/m/d'); ?>:<a href="<?php the_permalink(); ?>" name="post-<?php the_ID(); ?>" id="post-<?php the_ID(); ?>"<?php $link_target(); ?>><?php the_title(); ?></a>
    			?>
    
    			<?php
    			$days=30;
    			$today=date('U');
    			$entry=get_the_time('U');
    			$sa=date('U',($today - $entry))/86400;
    			if( $days > $sa ){
     	 			echo " <img src=\"/wp-content/themes/mytempl/img/home/icon_new.gif\" width=\"30\" height=\"16\" alt=\"NEW\" />";
     			}
    			?>
    
    			</li>
     		<?php endforeach; ?>
    		</ul>

    色々試しておりますが、さっぱり表示が成功しません・・・
    現在、上記のように書いたところですが、わやくちゃな状況になっております(汗;

    最新ニュース欄のひとつめの記事で、日付が出力されたあとに以下のようになっていて、それ以降のソースが表示されていないようで、フッターもサイドバーも見えなくなっております(泣

    2012/01/10: Fatal error: Call to undefined function target=”_blank”() in /myserver/www/myaccont/mysite.jp/wp-content/themes/mytmpl/main.php on line 125

    教えていただいたURLを見て色々やってはみたのですが、プログラミングとはいったい何がどうなっているものなのかわかっていないからか、エラー出まくりです(汗;
    「$key」というのがカスタムフィールドの「名前」にあたるそうなので、投稿したひとつのページのカスタムフィールドの名前欄に「uri」とつけてみました。
    また、「meta_key」というのが「値」だそうで、ここに実際の別窓でリンクしたいURLを入力してみました。
    いやぁ、秩序がわかっていないからか、プログラミングというのは難しいものなのですね。
    なんか自分の馬鹿さ加減を露呈するみたいでこっぱずかしいですが、現状こんな状態でございます。頭が悪くて済みません。
    どこが間違っていますでしょうか。たぶんあちこちなんだとは思いますが・・・

    モデレーター Takuro Hishikawa

    (@hissy)

    とりあえず該当部分の修正。未検証

    $link = get_permalink();
    $link_target = '';
    $ex_link = get_post_meta(get_the_ID(), 'uri', true);
    if ( $ex_link ) {
    	$link = $ex_link;
    	$link_target = ' target="_blank"';
    }
    <li <?php post_class(); ?>><?php the_time('Y/m/d'); ?>:<a href="<?php echo $link; ?>" name="post-<?php the_ID(); ?>" id="post-<?php the_ID(); ?>"<?php echo $link_target; ?>><?php the_title(); ?></a>

    色々試す前にPHPの関数の使い方について少し練習したほうがよさそうですね。

    トピック投稿者 gapel

    (@gapel)

    すごすぎます・・・
    そして本当にありがとうございます・・・
    このままではエラーになったので、これに加えてphpの始まりと終わりを適切な箇所に挿入したら、ものの見事に動きました!!!

    プログラミングは難しいですね・・・
    hissy様の答えを拝見してもなお、「なぜここにこんな記述をするのか?」というのがどれひとつみてもわかりません。。
    何故最初にget_parmalinkを$linkという箱に入れねばならんのか、なぜその次の$link_targetを空っぽにするのか、ex_linkとはいったい何者なのか、なぜ使わないget_the_IDというものも書くのか、なぜここに自分の作成したuriがのってくるのか etc・・・

    このご回答が、なぜそうなるのかを勉強・練習していきたいと思います。
    本当にご面倒おかけして申し訳ありませんでしたm(_ _)m
    そして、感謝申し上げます!

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「指定のニュースタイトルだけ記事自体がなく、リンクをクリックしたら別」には新たに返信することはできません。