• 解決済 konan2017

    (@konan2017)


    Shortcodes Ultimateを使ってRSS投稿をしているのですが
    少し変えようと思っています。
    例えば画像も一緒につけるなどなど

    そこで教えて欲しいのは
    Shortcodes Ultimateのどのファィルにあるのかさっぱりわかりません。
    それらしいものでもなんでも結構ですのでアドバイスお願いします。

    宜しくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • ショートコード [su_feed] は ./inc/core/shortcodes.php の888行目あたりです。

    public static function feed( $atts = null, $content = null ) {
        $atts = shortcode_atts( array(
                'url'   => get_bloginfo_rss( 'rss2_url' ),
                'limit' => 3,
                'class' => ''
            ), $atts, 'feed' );
        if ( !function_exists( 'wp_rss' ) ) include_once ABSPATH . WPINC . '/rss.php';
        ob_start();
        echo '<div class="su-feed' . su_ecssc( $atts ) . '">';
        wp_rss( $atts['url'], $atts['limit'] );
        echo '</div>';
        $return = ob_get_contents();
        ob_end_clean();
        return $return;
    }
    

    追記: wp_rss() は WordPress のコア関数です。

    Home

    • この返信は7年、 4ヶ月前にgblsmが編集しました。

    追記です。
    例として挙げていらっしゃる「画像をつける」を行いたい場合、下記のようにしてはどうでしょう。

    1. コアの関数 wp_rss() をコピーして新しい関数を作る。仮に konan2017_wp_rss() とします。
    2. Shortcodes Ultimate のコード内で wp_rss() を呼び出している箇所を、代わりに konan2017_wp_rss() を呼び出すように書き換える。ただし、Shortcodes Ultimate を更新すると書き換えた部分が元に戻ってしまいます。
    3. konan2017_wp_rss() のコードを、画像をつけるように改造する。

    wp_rss() のコードは https://developer.wordpress.org/reference/functions/wp_rss/ に掲載されているので、簡単にコピーできます。

    トピック投稿者 konan2017

    (@konan2017)

    gblsm さんアドバイス大変ありがとございます。
    いろいろ苦戦していてまだ解決出来ていません。

    少し確認したい事がありますがよろしくお願いします。
    編集するのは以下の2点でよろしいのでしょうか?
    wp-includesの中にある
    rss.php
    plugins/shortcodes-ultimate/inc/coreの中にある
    shortcodes.php

    以上2つを以下のように編集しました。
    rss.phpをrss3として新規にファイルを作成して同じフォルダーに入れた。

    shortcodes.phpの中を以下に編集しました。
    964行目当たりのものです。
    if ( !function_exists( ‘wp_rss3’ ) ) include_once ABSPATH . WPINC . ‘/rss.php’;

    通常はこれで良いのでしょうか?
    お手数ですがもう少しアドバイス頂けると大変助かります。

    1. 新しいファイルをコアの wp-includes フォルダーへ入れるのはお勧めしません。rss.php の中にある wp_rss() のコードだけをコピーして、テーマ(自作または子テーマ)の functions.php へ書き足す(関数名を wp_rss3 に変えて)と良いのではないでしょうか。
    2. プラグインの shortcodes.php の中で if ( !function_exists( 'wp_rss' ) ) ... の行は書き換えないで、wp_rss( $atts['url'], $atts['limit'] ); の行だけ wp_rss を wp_rss3 に変えます。

    ところで、ある小さなプラグインを作れば、そのプラグインで wp_rss() を置き換えることができます。そうすれば Shortcodes Ultimate のコードを書き換える必要はなくなります。このときに作るのは wp_rss() を定義するだけのプラグインです。

    検証していませんが、プラグインで wp_rss() を置き換えるなら、だいたいこんな感じです。予めバックアップを取り、失敗してもバックアップから戻せることを確かめた後に、お試しください。

    <?php
    /*
    Plugin Name: My wp_rss
    Plugin URI: https://ja.wordpress.org/support/topic/shortcodes-ultimateのrss投稿しているファィルはどこにあるので/
    Description: wp_rss() に画像を一緒につける
    Author: @konan2017
    Version: 0.1
    Author URI: https://ja.wordpress.org/support/users/konan2017/
    */
    
    if ( !function_exists('wp_rss') ) :
    // 自分専用の wp_rss() を定義する
    function wp_rss( $url, $num_items = -1 ) {
    	// 自分専用に変更した wp_rss() のコード
    }
    endif;
    

    参考にしたブログ記事
    http://www.webopixel.net/wordpress/631.html
    WordPressのプラグインを開発しよう(初級編)

    • この返信は7年、 4ヶ月前にgblsmが編集しました。
    トピック投稿者 konan2017

    (@konan2017)

    gblsm さんいろいろとありがとございます。

    かなり日数が経ってしまいましたがやっとプラグインで実装することが出来ました。

    Shortcodes Ultimateのほうは今だに実装できていませんが
    とりあえずプラグインで可能になったので暫くこの方法で使って行きます。

    ありがとございました。

    トピック投稿者 konan2017

    (@konan2017)

    解決済みです

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「Shortcodes UltimateのRSS投稿しているファィルはどこにあるのでしょうか」には新たに返信することはできません。