サポート » プラグイン » What’s New GeneratorとVK Link Target Controllerを使って新着表示する際の外部リンクを別ウィンドウで開きたい

  • 解決済 lalala76

    (@lalala76)


    What’s New Generatorを使って、トップページに新着情報を表示しています。
    その際、
    ・投稿に本文がなければリンクなし
    ・投稿内容があれば投稿ページへリンク
    としています。

    さらに、投稿ページでVK Link Target Controllerを使って、外部リンクを指定した際、
    別ウィンドウで開きたいのですが、開きません。

    the_permalink() をしている aタグの親タグに post-[ID] というid属性が必要
    という記事を読んだのですが、What’s New Generatorのview.php内にはthe_permalink() がなく、
    どうすればよいのかわかりません。

    外部リンクを別ウィンドウにするWP External Linksも入れてみましたが、
    別ウィンドウで開きませんでした。

    どうすれば、What’s New Generatorの新着情報からタイトルをクリックした際に
    VK Link Target Controllerで指定した外部リンクを別ウィンドウで開けるように
    なりますでしょうか。

    下記はWhat’s New Generatorのwhatsnew-view.phpの内容です。

    <div class='whatsnew'>
    	<?php if ( $info->title ): ?>
    		<?php echo '<'.$info->title_tag.'>'.$info->title.'</'.$info->title_tag.'>'; ?>
    	<?php endif; ?>
    
    	<hr/>
    	<?php foreach($info->items as $item): ?>
    	<dl>
    			<dt>
    <?php echo $item->date; ?><?php echo get_post_meta($post->ID, ‘news’, true); ?>
    		</dt>
    		<dd>
    			<?php if ( $item->newmark ): ?>
    			<span class='newmark'>NEW!</span>
    	<?php endif; ?>
    	<?php if($item->content != ''): ?> <!-- 追加 -->
    		<a href="<?php echo $item->url; ?>"><?php echo $item->title; ?></a>
    	<?php else: ?> <!-- 追加 -->
    		<?php echo $item->title; ?> <!-- 追加 -->
    	<?php endif; ?> <!-- 追加 -->			
    		</dd>
    		
    	</dl>
    	<hr/>
    	<?php endforeach; ?>
    </div>
    
    • このトピックはlalala76が6年、 6ヶ月前に変更しました。
    • このトピックはlalala76が6年、 6ヶ月前に変更しました。
8件の返信を表示中 - 1 - 8件目 (全8件中)
  • VK Link Target Controller の FAQ に書いてあるように、テンプレートなどの中で the_permalink() でパーマリンクが出力されるときに、そのパーマリンクを置き換える、という動作をするので、What’s New Generator のショートコードが生成するパーマリンクを置き換えることはできませんね。

    What’s New Generator と VK Link Target Controller を生かしつつ無理やり実現するとしたら、下記のような感じで新たにショートコードを作って使うしかないような気が…。下記のコードを functions.php に貼り付けて、[showwhatsnew] の代わりに新たなショートコード [my_whatsnew] を使えば、とりあえず目的の結果にはなるのではないかと思います。

    https://pastebin.com/embed_js/GBWfVETj

    トピック投稿者 lalala76

    (@lalala76)

    ありがとうございます!
    こちらを貼り付けましたら、外部リンクが別ウィンドウで開くようになりました。

    ただ、
    ・投稿に本文がなければリンクなし
    ・投稿内容があれば投稿ページへリンク
    この部分が、できなくなってしまいました。

    元々、What’s New Generatorの、whats-new-generator.php
    に追加した部分を、いただいたコードの該当部分に貼り付けてみたのですが、
    動作しませんでした。//追加、という部分です。

    	public function __construct( $post ){
    		$options = WNG::get_option();
    		$orderby = $options['wng_orderby'];
    		$this->raw_date = $orderby == '公開日順' ? $post->post_date : $post->post_modified;
    		$this->date = date(get_option('date_format'), strtotime($this->raw_date));
    		$this->title = esc_html( $post->post_title );
    		$this->url = get_permalink($post->ID);
    		$this->ID = $post->ID;
    		$this->newmark = $this->is_new();
    		$this->content = $post->post_content; //追加
    		self::$number++;
    	}
    

    whatsnew-view.phpの該当箇所が下記になります。

    <?php if($item->content != ''): ?> <!-- 追加 -->
    		<a href="<?php echo $item->url; ?>"><?php echo $item->title; ?></a>
    	<?php else: ?> <!-- 追加 -->
    		<?php echo $item->title; ?> <!-- 追加 -->
    	<?php endif; ?> <!-- 追加 -->			

    よろしければ、こちらも教えていただけますととても助かります。
    何卒よろしくお願いします。

    • この返信は6年、 6ヶ月前にlalala76が編集しました。

    最初の質問に貼ってあった whatsnew-view.php も、改変後のものだったのですね。

    VK Link Target Controller によるリダイレクト先の有無と、投稿本文の有無は、どちらが優先条件なのでしょうか。

    (1) VK Link有 && 本文有 → VK LinkのURLへリンク
    (2) VK Link有 && 本文無 → VK LinkのURLへリンク? リンクなし?
    (3) VK Link無 && 本文有 → 投稿へリンク
    (4) VK Link無 && 本文無 → リンクなし

    トピック投稿者 lalala76

    (@lalala76)

    お返事ありがとうございます。

    (1) VK Link有 && 本文有 → VK LinkのURLへリンク
    (2) VK Link有 && 本文無 → VK LinkのURLへリンク
    (3) VK Link無 && 本文有 → 投稿へリンク
    (4) VK Link無 && 本文無 → リンクなし

    このように考えています。
    よろしくお願いいたします。

    (投稿が承認待ちで表示保留になってしまったので(長いコードを貼ったせい?)、pastebin に変更して投稿しなおします。)
    ——————————
    pastebin に載せたコードのうち、書き換えた my_show_whatsnew() だけ下記に貼ります。

    https://pastebin.com/embed_js/kXXtWyUc

    my_WhatsNewItem() のコンストラクタに lalala76 さんが追記した部分 ($this->content = $post->post_content; //追加) はそのまま追記にしておいてください。

    で、アンカータグは、前回は What’s New Generator のオリジナルのとおり、<dt> と <dd> を含むようになっていましたが、今回は、lalala76さんの最初のコードのように <dd></dd> の中に入れました。これだと、What’s New Generator のスタイルシートで アンカーが display:block に設定されているため、NEW! とリンクが別の行になってしまいますが、おそらく lalala76さん自身でスタイルを再設定して調整されているものと思い、そのままにしてあります。

    トピック投稿者 lalala76

    (@lalala76)

    Kazuyuki Kumai 様

    ありがとうございました!
    無事に設置できました。

    この度は本当にありがとうございました。
    助かりました。
    ありがとうございます。

    What’s New Generator と VK Link Target Controller の内部の関数などに依存しているので、これらのプラグインが更新されたときに何か問題が起きる可能性はあります。その点はご承知おきください。

    なお、トピックを「解決済み」にしてくださいますようお願いします。

    トピック投稿者 lalala76

    (@lalala76)

    更新時につきまして、了解いたしました。
    ありがとうございます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「What’s New GeneratorとVK Link Target Controllerを使って新着表示する際の外部リンクを別ウィンドウで開きたい」には新たに返信することはできません。