Diff
checker
テキスト
テキスト
画像
ドキュメント
Excel
フォルダ
Legal
Enterprise
デスクトップ
料金
ログイン
Diffchecker デスクトップのダウンロード
テキスト比較
2 つのテキスト ファイルの違いを見つける
ツール
履歴
ライブエディター
未変更行を折りたたむ
折り返しなし
レイアウト
分割
統合
比較精度
スマート
単語
文字
シンタックスハイライト
構文を選択
無視
テキスト変換
最初の差分へ移動
入力を編集
Diffchecker Desktop
Diffcheckerを実行する最も安全な方法。Diffchecker Desktopアプリを入手:あなたの差分はコンピューターから出ることはありません!
Desktopを入手
Themer ACF get_row_index();
作成日
3 年前
差分は期限切れになりません
クリア
エクスポート
共有
説明
0 削除
行
合計
削除
文字
合計
削除
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
174 行
すべてコピー
13 追加
行
合計
追加
文字
合計
追加
この機能を引き続き使用するには、アップグレードしてください
Diff
checker
Pro
価格を見る
183 行
すべてコピー
<?php
<?php
/**
/**
* ACF repeater and flexible content shortcode
* ACF repeater and flexible content shortcode
* support for the theme builder.
* support for the theme builder.
*
*
* @since 1.1.2
* @since 1.1.2
*/
*/
final class FLThemeBuilderACFRepeater {
final class FLThemeBuilderACFRepeater {
/**
/**
* Shortcode tags for ACF repeater fields.
* Shortcode tags for ACF repeater fields.
*
*
* @since 1.1.2
* @since 1.1.2
* @var array $repeater_shortcodes
* @var array $repeater_shortcodes
*/
*/
static private $repeater_shortcodes = array(
static private $repeater_shortcodes = array(
'wpbb-acf-flex',
'wpbb-acf-flex',
'wpbb-acf-repeater',
'wpbb-acf-repeater',
);
);
/**
/**
* Shortcode tags for ACF repeater field content.
* Shortcode tags for ACF repeater field content.
*
*
* @since 1.1.2
* @since 1.1.2
* @var array $content_shortcodes
* @var array $content_shortcodes
*/
*/
static private $content_shortcodes = array(
static private $content_shortcodes = array(
'wpbb',
'wpbb',
'wpbb-if',
'wpbb-if',
'wpbb-acf-layout',
'wpbb-acf-layout',
);
);
/**
/**
* All shortcode tags for ACF repeaters.
* All shortcode tags for ACF repeaters.
*
*
* @since 1.1.2
* @since 1.1.2
* @var array $all_shortcodes
* @var array $all_shortcodes
*/
*/
static private $all_shortcodes = array(
static private $all_shortcodes = array(
'wpbb-acf-flex',
'wpbb-acf-flex',
'wpbb-acf-repeater',
'wpbb-acf-repeater',
'wpbb',
'wpbb',
'wpbb-if',
'wpbb-if',
'wpbb-acf-layout',
'wpbb-acf-layout',
);
);
/**
/**
* @since 1.1.2
* @since 1.1.2
* @return void
* @return void
*/
*/
static public function init() {
static public function init() {
add_filter( 'fl_builder_before_render_shortcodes', __CLASS__ . '::parse_shortcodes', 1 );
add_filter( 'fl_builder_before_render_shortcodes', __CLASS__ . '::parse_shortcodes', 1 );
add_filter( 'fl_theme_builder_custom_post_grid_html', __CLASS__ . '::parse_shortcodes', 1 );
add_filter( 'fl_theme_builder_custom_post_grid_html', __CLASS__ . '::parse_shortcodes', 1 );
add_shortcode( 'wpbb-acf-repeater', __CLASS__ . '::parse_shortcode' );
add_shortcode( 'wpbb-acf-repeater', __CLASS__ . '::parse_shortcode' );
add_shortcode( 'wpbb-acf-flex', __CLASS__ . '::parse_shortcode' );
add_shortcode( 'wpbb-acf-flex', __CLASS__ . '::parse_shortcode' );
add_shortcode( 'wpbb-acf-layout', __CLASS__ . '::parse_layout_shortcode' );
add_shortcode( 'wpbb-acf-layout', __CLASS__ . '::parse_layout_shortcode' );
コピー
コピー済み
コピー
コピー済み
// New Index Shortcode
add_shortcode( 'wpbb-acf-repeater-index', __CLASS__ . '::parse_index_shortcode' );
}
}
コピー
コピー済み
コピー
コピー済み
/**
/**
* Parse the repeater shortcode here instead of
* Parse the repeater shortcode here instead of
* relying on do_shortcode to make sure it's parsed
* relying on do_shortcode to make sure it's parsed
* before other wpbb shortcodes.
* before other wpbb shortcodes.
*
*
* @since 1.1.2
* @since 1.1.2
* @param string $content
* @param string $content
* @return string
* @return string
*/
*/
static public function parse_shortcodes( $content ) {
static public function parse_shortcodes( $content ) {
return FLThemeBuilderFieldConnections::parse_shortcodes(
return FLThemeBuilderFieldConnections::parse_shortcodes(
$content,
$content,
self::$repeater_shortcodes
self::$repeater_shortcodes
);
);
}
}
/**
/**
* Parses the ACF repeater and flex shortcodes.
* Parses the ACF repeater and flex shortcodes.
*
*
* @since 1.1.2
* @since 1.1.2
* @param array $attrs
* @param array $attrs
* @param string $content
* @param string $content
* @return string
* @return string
*/
*/
static public function parse_shortcode( $attrs, $content = '' ) {
static public function parse_shortcode( $attrs, $content = '' ) {
if ( ! isset( $attrs['name'] ) ) {
if ( ! isset( $attrs['name'] ) ) {
return '';
return '';
}
}
// Yoast will throw a fatal error if shortcodes are found in regular wp content.
// Yoast will throw a fatal error if shortcodes are found in regular wp content.
if ( ! class_exists( 'FLPageDataACF' ) ) {
if ( ! class_exists( 'FLPageDataACF' ) ) {
return '';
return '';
}
}
$name = trim( $attrs['name'] );
$name = trim( $attrs['name'] );
$type = isset( $attrs['type'] ) ? $attrs['type'] : 'post';
$type = isset( $attrs['type'] ) ? $attrs['type'] : 'post';
$id = FLPageDataACF::get_object_id_by_type( $type );
$id = FLPageDataACF::get_object_id_by_type( $type );
$parsed = '';
$parsed = '';
if ( have_rows( $name, $id ) ) {
if ( have_rows( $name, $id ) ) {
while ( have_rows( $name, $id ) ) {
while ( have_rows( $name, $id ) ) {
the_row();
the_row();
$content = self::escape_nested_shortcodes( $content );
$content = self::escape_nested_shortcodes( $content );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes );
$row = self::unescape_nested_shortcodes( $row );
$row = self::unescape_nested_shortcodes( $row );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes );
コピー
コピー済み
コピー
コピー済み
$parsed .=
$row
;
$parsed .=
do_shortcode(
$row
)
;
}
}
} else {
} else {
$content = self::escape_nested_shortcodes( $content );
$content = self::escape_nested_shortcodes( $content );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes );
$row = self::unescape_nested_shortcodes( $row );
$row = self::unescape_nested_shortcodes( $row );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes );
$row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes );
コピー
コピー済み
コピー
コピー済み
$parsed .=
$row
;
$parsed .=
do_shortcode(
$row
)
;
}
}
return $parsed;
return $parsed;
}
}
コピー
コピー済み
コピー
コピー済み
static public function parse_index_shortcode() {
$index = get_row_index();
return "$index";
}
/**
/**
* Parses the ACF layout shortcode for flexible content.
* Parses the ACF layout shortcode for flexible content.
*
*
* @since 1.1.2
* @since 1.1.2
* @param array $attrs
* @param array $attrs
* @param string $content
* @param string $content
* @return string
* @return string
*/
*/
static public function parse_layout_shortcode( $attrs, $content = '' ) {
static public function parse_layout_shortcode( $attrs, $content = '' ) {
if ( ! isset( $attrs['name'] ) || get_row_layout() !== $attrs['name'] ) {
if ( ! isset( $attrs['name'] ) || get_row_layout() !== $attrs['name'] ) {
return '';
return '';
}
}
return FLThemeBuilderFieldConnections::parse_shortcodes(
return FLThemeBuilderFieldConnections::parse_shortcodes(
$content,
$content,
self::$all_shortcodes
self::$all_shortcodes
);
);
}
}
/**
/**
* Escapes nested wpbb shortcodes so they are not parsed
* Escapes nested wpbb shortcodes so they are not parsed
* when the parent repeater is.
* when the parent repeater is.
*
*
* @since 1.1.2
* @since 1.1.2
* @param string $content
* @param string $content
* @return string
* @return string
*/
*/
static public function escape_nested_shortcodes( $content ) {
static public function escape_nested_shortcodes( $content ) {
$pattern = '/\[wpbb-acf-nested-repeater.*?\][\d\D]*?\[\/wpbb-acf-nested-repeater\]/i';
$pattern = '/\[wpbb-acf-nested-repeater.*?\][\d\D]*?\[\/wpbb-acf-nested-repeater\]/i';
preg_match_all( $pattern, $content, $matches );
preg_match_all( $pattern, $content, $matches );
foreach ( $matches as $match ) {
foreach ( $matches as $match ) {
$content = str_replace( $match, str_replace( 'wpbb', 'wpbb-nested', $match ), $content );
$content = str_replace( $match, str_replace( 'wpbb', 'wpbb-nested', $match ), $content );
}
}
return $content;
return $content;
}
}
/**
/**
* Unescapes nested shortcodes so they can be parsed.
* Unescapes nested shortcodes so they can be parsed.
*
*
* @since 1.1.2
* @since 1.1.2
* @param string $content
* @param string $content
* @return string
* @return string
*/
*/
static public function unescape_nested_shortcodes( $content ) {
static public function unescape_nested_shortcodes( $content ) {
$content = str_replace( 'wpbb-nested', 'wpbb', $content );
$content = str_replace( 'wpbb-nested', 'wpbb', $content );
$content = str_replace( 'wpbb-acf-nested-repeater', 'wpbb-acf-repeater', $content );
$content = str_replace( 'wpbb-acf-nested-repeater', 'wpbb-acf-repeater', $content );
return $content;
return $content;
}
}
}
}
FLThemeBuilderACFRepeater::init();
FLThemeBuilderACFRepeater::init();
保存された差分
原文
ファイルを開く
<?php /** * ACF repeater and flexible content shortcode * support for the theme builder. * * @since 1.1.2 */ final class FLThemeBuilderACFRepeater { /** * Shortcode tags for ACF repeater fields. * * @since 1.1.2 * @var array $repeater_shortcodes */ static private $repeater_shortcodes = array( 'wpbb-acf-flex', 'wpbb-acf-repeater', ); /** * Shortcode tags for ACF repeater field content. * * @since 1.1.2 * @var array $content_shortcodes */ static private $content_shortcodes = array( 'wpbb', 'wpbb-if', 'wpbb-acf-layout', ); /** * All shortcode tags for ACF repeaters. * * @since 1.1.2 * @var array $all_shortcodes */ static private $all_shortcodes = array( 'wpbb-acf-flex', 'wpbb-acf-repeater', 'wpbb', 'wpbb-if', 'wpbb-acf-layout', ); /** * @since 1.1.2 * @return void */ static public function init() { add_filter( 'fl_builder_before_render_shortcodes', __CLASS__ . '::parse_shortcodes', 1 ); add_filter( 'fl_theme_builder_custom_post_grid_html', __CLASS__ . '::parse_shortcodes', 1 ); add_shortcode( 'wpbb-acf-repeater', __CLASS__ . '::parse_shortcode' ); add_shortcode( 'wpbb-acf-flex', __CLASS__ . '::parse_shortcode' ); add_shortcode( 'wpbb-acf-layout', __CLASS__ . '::parse_layout_shortcode' ); } /** * Parse the repeater shortcode here instead of * relying on do_shortcode to make sure it's parsed * before other wpbb shortcodes. * * @since 1.1.2 * @param string $content * @return string */ static public function parse_shortcodes( $content ) { return FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$repeater_shortcodes ); } /** * Parses the ACF repeater and flex shortcodes. * * @since 1.1.2 * @param array $attrs * @param string $content * @return string */ static public function parse_shortcode( $attrs, $content = '' ) { if ( ! isset( $attrs['name'] ) ) { return ''; } // Yoast will throw a fatal error if shortcodes are found in regular wp content. if ( ! class_exists( 'FLPageDataACF' ) ) { return ''; } $name = trim( $attrs['name'] ); $type = isset( $attrs['type'] ) ? $attrs['type'] : 'post'; $id = FLPageDataACF::get_object_id_by_type( $type ); $parsed = ''; if ( have_rows( $name, $id ) ) { while ( have_rows( $name, $id ) ) { the_row(); $content = self::escape_nested_shortcodes( $content ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); $row = self::unescape_nested_shortcodes( $row ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes ); $parsed .= $row; } } else { $content = self::escape_nested_shortcodes( $content ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); $row = self::unescape_nested_shortcodes( $row ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes ); $parsed .= $row; } return $parsed; } /** * Parses the ACF layout shortcode for flexible content. * * @since 1.1.2 * @param array $attrs * @param string $content * @return string */ static public function parse_layout_shortcode( $attrs, $content = '' ) { if ( ! isset( $attrs['name'] ) || get_row_layout() !== $attrs['name'] ) { return ''; } return FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); } /** * Escapes nested wpbb shortcodes so they are not parsed * when the parent repeater is. * * @since 1.1.2 * @param string $content * @return string */ static public function escape_nested_shortcodes( $content ) { $pattern = '/\[wpbb-acf-nested-repeater.*?\][\d\D]*?\[\/wpbb-acf-nested-repeater\]/i'; preg_match_all( $pattern, $content, $matches ); foreach ( $matches as $match ) { $content = str_replace( $match, str_replace( 'wpbb', 'wpbb-nested', $match ), $content ); } return $content; } /** * Unescapes nested shortcodes so they can be parsed. * * @since 1.1.2 * @param string $content * @return string */ static public function unescape_nested_shortcodes( $content ) { $content = str_replace( 'wpbb-nested', 'wpbb', $content ); $content = str_replace( 'wpbb-acf-nested-repeater', 'wpbb-acf-repeater', $content ); return $content; } } FLThemeBuilderACFRepeater::init();
変更されたテキスト
ファイルを開く
<?php /** * ACF repeater and flexible content shortcode * support for the theme builder. * * @since 1.1.2 */ final class FLThemeBuilderACFRepeater { /** * Shortcode tags for ACF repeater fields. * * @since 1.1.2 * @var array $repeater_shortcodes */ static private $repeater_shortcodes = array( 'wpbb-acf-flex', 'wpbb-acf-repeater', ); /** * Shortcode tags for ACF repeater field content. * * @since 1.1.2 * @var array $content_shortcodes */ static private $content_shortcodes = array( 'wpbb', 'wpbb-if', 'wpbb-acf-layout', ); /** * All shortcode tags for ACF repeaters. * * @since 1.1.2 * @var array $all_shortcodes */ static private $all_shortcodes = array( 'wpbb-acf-flex', 'wpbb-acf-repeater', 'wpbb', 'wpbb-if', 'wpbb-acf-layout', ); /** * @since 1.1.2 * @return void */ static public function init() { add_filter( 'fl_builder_before_render_shortcodes', __CLASS__ . '::parse_shortcodes', 1 ); add_filter( 'fl_theme_builder_custom_post_grid_html', __CLASS__ . '::parse_shortcodes', 1 ); add_shortcode( 'wpbb-acf-repeater', __CLASS__ . '::parse_shortcode' ); add_shortcode( 'wpbb-acf-flex', __CLASS__ . '::parse_shortcode' ); add_shortcode( 'wpbb-acf-layout', __CLASS__ . '::parse_layout_shortcode' ); // New Index Shortcode add_shortcode( 'wpbb-acf-repeater-index', __CLASS__ . '::parse_index_shortcode' ); } /** * Parse the repeater shortcode here instead of * relying on do_shortcode to make sure it's parsed * before other wpbb shortcodes. * * @since 1.1.2 * @param string $content * @return string */ static public function parse_shortcodes( $content ) { return FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$repeater_shortcodes ); } /** * Parses the ACF repeater and flex shortcodes. * * @since 1.1.2 * @param array $attrs * @param string $content * @return string */ static public function parse_shortcode( $attrs, $content = '' ) { if ( ! isset( $attrs['name'] ) ) { return ''; } // Yoast will throw a fatal error if shortcodes are found in regular wp content. if ( ! class_exists( 'FLPageDataACF' ) ) { return ''; } $name = trim( $attrs['name'] ); $type = isset( $attrs['type'] ) ? $attrs['type'] : 'post'; $id = FLPageDataACF::get_object_id_by_type( $type ); $parsed = ''; if ( have_rows( $name, $id ) ) { while ( have_rows( $name, $id ) ) { the_row(); $content = self::escape_nested_shortcodes( $content ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); $row = self::unescape_nested_shortcodes( $row ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes ); $parsed .= do_shortcode( $row ); } } else { $content = self::escape_nested_shortcodes( $content ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); $row = self::unescape_nested_shortcodes( $row ); $row = FLThemeBuilderFieldConnections::parse_shortcodes( $row, self::$repeater_shortcodes ); $parsed .= do_shortcode( $row ); } return $parsed; } static public function parse_index_shortcode() { $index = get_row_index(); return "$index"; } /** * Parses the ACF layout shortcode for flexible content. * * @since 1.1.2 * @param array $attrs * @param string $content * @return string */ static public function parse_layout_shortcode( $attrs, $content = '' ) { if ( ! isset( $attrs['name'] ) || get_row_layout() !== $attrs['name'] ) { return ''; } return FLThemeBuilderFieldConnections::parse_shortcodes( $content, self::$all_shortcodes ); } /** * Escapes nested wpbb shortcodes so they are not parsed * when the parent repeater is. * * @since 1.1.2 * @param string $content * @return string */ static public function escape_nested_shortcodes( $content ) { $pattern = '/\[wpbb-acf-nested-repeater.*?\][\d\D]*?\[\/wpbb-acf-nested-repeater\]/i'; preg_match_all( $pattern, $content, $matches ); foreach ( $matches as $match ) { $content = str_replace( $match, str_replace( 'wpbb', 'wpbb-nested', $match ), $content ); } return $content; } /** * Unescapes nested shortcodes so they can be parsed. * * @since 1.1.2 * @param string $content * @return string */ static public function unescape_nested_shortcodes( $content ) { $content = str_replace( 'wpbb-nested', 'wpbb', $content ); $content = str_replace( 'wpbb-acf-nested-repeater', 'wpbb-acf-repeater', $content ); return $content; } } FLThemeBuilderACFRepeater::init();
違いを見つける