• 解決済 chatm

    (@chatm)


    wordpress5.6 php7.2 lazyblockプラグインバージョン 2.3.0
    グーテンベルグを使っております。
    lazyblockプラグインを使って入力の簡単なカスタムブロックを作っています。
    会社の沿革のようなレイアウトで、日付と内容を横並びリストで並べ、これをwpエディターでそれぞれText Areaで入力させるというものです。(cssで形は整えております)
    テキスト入力だけなら設定できたのですが、内容にリンクがあるものは任意の外部サイトへリンクをさせたい(リンクのない項目もある)という設定をしたいのですが、うまくできません。
    下記はテキストだけの設定のコードです。これのevent-nameに任意の外部リンク先が設定できるようになれば嬉しいのですが・・・。

    <div class="enkaku">
    <dl>
    <dt><?php echo nl2br($attributes['date-name']); ?></dt>
    <dd><?php echo nl2br($attributes['event-name']); ?>
    </dd>
    </dl>
    </div><!-- /enkaku -->

    教えて頂けると助かります。

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • こんにちは

    下記のような PHP コードではどうでしょうか?

    <?php if ( $attributes['url'] ) : ?>
    	<a href="<?php echo esc_url( $attributes['url'] ); ?>"><?php echo nl2br( $attributes['event-name'] ); ?></a>
    <?php else; ?>
    	<?php echo nl2br( $attributes['event-name'] ); ?>
    <?php endif; ?>

    ※ URL コントロールタイプの名前を “url” としています。

    トピック投稿者 chatm

    (@chatm)

    ご返信ありがとうございます!
    やってみたところ、
    <?php else; ?>の行(7行目)でエラーが出てしまします。
    エラー内容は
    Parse error: syntax error, unexpected ‘else’ (T_ELSE), expecting end of file in /中略/wp-content/plugins/lazy-blocks/classes/class-blocks.php(1224) : eval()’d code on line 7

    <?php else; ?>を外して、URLのラベルを作り、名前もurlにしてType をURLにしたところ、

    <?php if ( $attributes['url'] ) : ?>
    	<a href="<?php echo esc_url( $attributes['url'] ); ?>"><?php echo nl2br( $attributes['event-name'] ); ?></a>
    <?php else; ?>

    は、ちゃんと表示されました。URL入れられて凄いです!(しかし、これではURL入れたものしか表示されません)申し訳ございませんが何か良い方法があれば教えて下さい。

    すみません、間違えました!

    <?php else; ?>

    <?php else : ?>

    ですね。m(__)m

    トピック投稿者 chatm

    (@chatm)

    追記です。全体です。

    <div class="enkaku">
    <dl>
    <dt><?php echo nl2br($attributes['date-name']); ?></dt>
    <dd><p>
    <?php if ( $attributes['url'] ) : ?>
    	<a href="<?php echo esc_url( $attributes['url'] ); ?>"><?php echo nl2br( $attributes['event-name'] ); ?></a>
    	<?php echo nl2br( $attributes['event-name'] ); ?>
    <?php endif; ?>
    </p></dd>
    </dl>
    </div><!-- /enkaku -->
    トピック投稿者 chatm

    (@chatm)

    すみません。同じエラーが出てしまいます。下記は全体です。

    <div class="enkaku">
    <dl>
    <dt><?php echo nl2br($attributes['date-name']); ?></dt>
    <dd><p>
    <?php if ( $attributes['url'] ) ; ?>
    <a href="<?php echo esc_url( $attributes['url'] ); ?>"><?php echo nl2br( $attributes['event-name'] ); ?></a>
    <?php else : ?>
    <?php echo nl2br( $attributes['event-name'] ); ?>
    <?php endif; ?>
    </p></dd>
    </dl>
    </div><!-- /enkaku -->

    <?php if ( $attributes['url'] ) ; ?>

    ここ間違えてますよ😉
    ;→:
    ですね。

    トピック投稿者 chatm

    (@chatm)

    ありがとうございました!できました嬉しいです!
    リンクはtarget=”_blank”にしてみました。
    いろいろご面倒おかけしてすみません!教えていただきありがとうございました。
    完成したコードです。

    <div class="history">
    <dl>
    <dt><?php echo nl2br($attributes['date-name']); ?></dt>
    <dd><p>
    <?php if ( $attributes['url'] ) : ?>
    <a href="<?php echo esc_url( $attributes['url'] ); ?> "target="_blank">><?php echo nl2br( $attributes['event-name'] ); ?></a>
    <?php else : ?>
    <?php echo nl2br( $attributes['event-name'] ); ?>
    <?php endif; ?>
    </p></dd>
    </dl>
    </div><!-- /history -->
    トピック投稿者 chatm

    (@chatm)

    lazyblockプラグイン素晴らしいです。素人さんでも簡単に入力できるテンプレートができますね。これからも勉強しながら使っていきたいと思います。

    リンクはtarget=”_blank”にしてみました。

    target=”_blank” なら rel=”noopener” も追加されるといいかと思います。

    参考ページ: HTML 本当は怖い target=”_blank” 。rel=”noopener” ってなに? – かもメモ

    • この返信は3年、 10ヶ月前にishitakaが編集しました。
    トピック投稿者 chatm

    (@chatm)

    なるほど、勉強になります!この度はいろいろありごとうございました!

10件の返信を表示中 - 1 - 10件目 (全10件中)
  • トピック「lazyblockでカスタムブロックを作っています」には新たに返信することはできません。