質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • PHP

    24451questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    9098questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

[PHP][WordPress]aタグを変更したい

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 149

KanPiko

score 7

前提・実現したいこと

別のソースコード "echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';"
を該当のソースコードのrow-actionsのclassで変更したい思っていたのですが、
<?php echo wp_kses( $row_actions, $row_actions_kses ); ?>となっており、aタグが見つかりませんでした。
これはどのように記述されているのでしょうか?phpに関してほとんど知識がないので情報不足な部分が多いと思いますが、ご教授いただけると幸いです。

別のソースコード

<td>
 <?php
   echo $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';
   if ( has_post_thumbnail() ) {
      the_post_thumbnail( $featured_img_size );
    } else {
        printf( '<img src="%1$s" class="attachment-thumbnail wp-post-image" alt="%2$s" title="%2$s" />', 
      apply_filters( 'wpuf_no_image', plugins_url( '/assets/images/no-image.png', dirname( __FILE__ ) ) ), 
      __( 'No Image', 'wp-user-frontend' ) );
                                }
    echo $show_link ? '</a>' : '';
 ?>
</td>

該当のソースコード

  $row_actions_kses = apply_filters( 'dokan_row_actions_kses', array(
        'span' => array(
            'class' => array(),
        ),
        'a' => array(
            'href'    => array(),
            'onclick' => array(),
        ),
    ) );
 <td data-title="<?php esc_attr_e( 'Name', 'dokan-lite' ); ?>"><!--名前の列-->
        <?php if ( current_user_can( 'dokan_edit_product' ) ): ?>
            <p><a href="<?php echo esc_url( dokan_edit_product_url( $post->ID ) ); ?>"><?php echo esc_html( $product->get_title() ); ?></a></p><!--タイトル-->
        <?php else: ?>
            <p><a href=""><?php echo esc_html( $product->get_title() ); ?></a></p>
        <?php endif ?>

        <?php if ( !empty( $row_actions ) ): ?>
            <div class="row-actions">
                <?php echo wp_kses( $row_actions, $row_actions_kses ); ?>
            </div>
        <?php endif ?>
    </td>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

新規回答

<div class="row-actions"> <?php echo wp_kses( $row_actions, $row_actions_kses ); ?> </div>
での処理を日本語訳すると、row-actions=(多数)行のアクション、echoの出力内容は「配列」。

そして出力結果が

<span class="edit"><a href="https://www…">edit</a></span> | <span class="delete">
<a href="https://www…">Delete Permanently</a></span> | <span class="view">
<a href="https://www…">View</a></span> | <span class="item-inline-edit">
<a href="#quick-edit">Quick Edit</a></span> 


KanPikoさんが変更したいeditは配列要素の1番目、変更できるかは不明ですが、
できるとしたら変更するべき場所は該当ソースの

$row_actions_kses = apply_filters( 'dokan_row_actions_kses', array(
        'span' => array(
            'class' => array(),
        ),
        'a' => array(
            'href'    => array(),
            'onclick' => array(),
        ),
    ) );


例えばdokan_row_actions_ksesがカスタムフィールド($fild)なら、
hrefはキー($key)で、中身のhttp://~は値($value)。
配列の処理をやめて、繰り返し処理(while)で配列の1番目[0]~N番目[n-1]を一個ずつ出力。
分岐(if)条件としてhrefの1番目を出力するときだけ中身をget_permalink( $post->ID )とし、
その他(else)は通常処理で出力する。

残念ながらコードは提供できません、多少読めるけど全然書けないんです(^^;)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/13 13:42

    ご回答ありがとうございます。
    参考にさせていただきました。

    キャンセル

0

何を言いたいのかイマイチわかりませんがecho $show_link ? '<a href="' . get_permalink( $post->ID ) . '">' : '';のhrefの前にclassを指定すれば良いのでは?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/28 14:16 編集

    ご回答ありがとうございます。
    説明不足でした。すみません。

    変更したい該当のソースコードでは
    <div class="row-actions">
    <?php echo wp_kses( $row_actions, $row_actions_kses ); ?>
    </div>

    というように書かれていますが、実際にGoogleの検証で確認すると
    <div class="row-actions">
    <span class="edit"><a href="https://www…">edit</a></span> | <span class="delete">
    <a href="https://www…">Delete Permanently</a></span> | <span class="view">
    <a href="https://www…">View</a></span> | <span class="item-inline-edit">
    <a href="#quick-edit">Quick Edit</a></span>
    </div>

    というコードで表示されていました。そこで、
    <a href="https://www…">edit</a>のaタグを
    '<a href="' . get_permalink( $post->ID ) . '">'と変更したかったのですが、
    <?php echo wp_kses( $row_actions, $row_actions_kses ); ?>

    だと、どのように変更すればいいのか分からず困っています。

    キャンセル

  • 2019/05/28 14:48

    それでしたら
    全部だったらCSSで.row-actions aとしたり
    部分的に適用したいなら:th-childを使うのも手です。
    いずれもHTMLを編集する必要性はないですが一部の場合で汎用性がなくなります。

    キャンセル

  • 2019/05/28 14:52

    あとどこから呼び出されているのかというと一般的にはテーマディレクトリなどから呼び出されている場合が多いと思います。それがテーマによる記述なのだとしたらデスが

    キャンセル

  • 2019/05/28 23:10

    ご回答ありがとうございます。
    cssで変更を考えていたのですが、phpで動的にhrefのurlを取得しているのでできませんでした。

    テーマではなくプラグインになります。
    一つ一つチェックすることにします。

    キャンセル

  • 2019/05/29 12:56

    プラグイン名を教えてください。

    キャンセル

  • 2019/05/29 13:39

    ご回答ありがとうございます。

    プラグイン名はDokan mutivendorになります。
    pro版を使用していて、無料版で確認できるかどうか分かりませんがベンダーの登録ができればダッシュボードページで確認できます。

    問題の箇所なんですが、VendorのDashboardページでProductsという商品管理が可能なページがあると思います。そのページの名前の項目にEdit|Delete Permanently|View|Quick Editがあります。そこのEditのaタグを編集したいと思っています。

    お手数お掛け致しますがよろしくお願いします。

    キャンセル

  • 2019/05/29 13:52

    一応、権利上良いか確認してからになりますが、
    FTP接続できてますよね?
    そしたらwp > wp-content > pluginsに該当プラグイン名のようなフォルダはありませんか?
    そうしたらその中に入っているファイル名で該当しそうなものがあったら多分それが元です。

    キャンセル

  • 2019/05/29 15:56

    ご回答ありがとうございます。

    出来てます。質問日からFTP接続して該当しそうなものを探しているのですが、なかなか見つからなくて困ってます。

    キャンセル

  • 2019/05/29 22:07

    ファイル名の一覧を質問文かここに載せていただけませんか?

    キャンセル

  • 2019/05/30 00:48

    ご回答ありがとうございます。

    不要な部分もあると思いますが、templates内のファイルになります。


    templates\sub-orders.php
    templates\store.php
    templates\store-toc.php
    templates\store-lists.php
    templates\store-lists-loop.php
    templates\store-header.php
    templates\seller-search-form.php
    templates\my-orders.php
    templates\withdraw\withdraw.php
    templates\withdraw\status-listing.php
    templates\withdraw\request-form.php
    templates\withdraw\pending-request-listing.php
    templates\withdraw\header.php
    templates\withdraw\cancelled-request-listing.php
    templates\withdraw\approved-request-listing.php
    templates\widgets\widget-content-product.php
    templates\widgets\store-open-close.php
    templates\widgets\store-map.php
    templates\widgets\store-contact-form.php
    templates\settings\store.php
    templates\settings\store-form.php
    templates\settings\payment.php
    templates\settings\header.php
    templates\settings\address-form.php
    templates\products\tmpl-add-product-popup.php
    templates\products\products.php
    templates\products\products-listing.php
    templates\products\products-listing-row.php
    templates\products\others.php
    templates\products\new-product.php
    templates\products\new-product-single.php
    templates\products\listing-status-filter.php
    templates\products\listing-filter.php
    templates\products\inventory.php
    templates\products\downloadable.php
    templates\products\download-virtual.php
    templates\orders\orders.php
    templates\orders\orders-status-filter.php
    templates\orders\order-tax-html.php
    templates\orders\order-item-html.php
    templates\orders\order-fee-html.php
    templates\orders\order-download-permission-html.php
    templates\orders\listing.php
    templates\orders\downloadable.php
    \templates\orders\details.php
    templates\orders\date-export.php
    templates\login-form\login-form.php
    templates\login-form\login-form-popup.php
    templates\global\seller-warning.php
    templates\global\seller-registration-form.php
    templates\global\product-tab.php
    templates\global\no-permission.php
    templates\global\header-menu.php
    templates\global\dokan-warning.php
    templates\global\dokan-success.php
    templates\global\dokan-message.php
    templates\global\dokan-help.php
    templates\global\dokan-error.php
    templates\global\dashboard-nav.php
    templates\global\content-widget-products.php
    templates\emails\plain\withdraw-new.php
    templates\emails\plain\withdraw-cancel.php
    templates\emails\plain\withdraw-approve.php
    templates\emails\plain\product-published.php
    templates\emails\plain\new-seller-registered.php
    templates\emails\plain\new-product.php
    templates\emails\plain\new-product-pending.php
    templates\emails\plain\contact-seller.php
    templates\emails\withdraw-new.php
    templates\emails\withdraw-cancel.php
    templates\emails\withdraw-approve.php
    templates\emails\product-published.php
    templates\emails\new-seller-registered.php
    templates\emails\new-product.php
    templates\emails\new-product-pending.php
    templates\emails\contact-seller.php
    templates\dashboard\sales-chart-widget.php
    templates\dashboard\products-widget.php
    templates\dashboard\orders-widget.php
    templates\dashboard\edit-account.php
    templates\dashboard\dashboard.php
    templates\dashboard\big-counter-widget.php
    templates\account\vendor-registration.php

    キャンセル

同じタグがついた質問を見る

  • PHP

    24451questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    9098questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。