PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 4.06.03
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v4.06.03
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / views / xml / posts_xml.php

posts_xml.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 4.06.03, at classes/views/xml/posts_xml.php

104 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Generate the XML for export for posts and form actions.
4 *
5 * @phpcs:disable Generic.WhiteSpace.ScopeIndent.Incorrect
6 */
7
8 if ( ! $item_ids ) {
9 return;
10 }
11
12 global $wp_query;
13 $wp_query->in_the_loop = true; // Fake being in the loop.
14
15 // fetch 20 posts at a time rather than loading the entire table into memory
16 while ( $next_posts = array_splice( $item_ids, 0, 20 ) ) {
17 $posts = FrmDb::get_results( $wpdb->posts, array( 'ID' => $next_posts ) );
18
19 // Begin Loop
20 foreach ( $posts as $post ) {
21 setup_postdata( $post );
22 $is_sticky = is_sticky( $post->ID ) ? 1 : 0;
23 ?>
24 <view>
25 <title><?php echo esc_html( apply_filters( 'the_title_rss', $post->post_title ) ); ?></title>
26 <link><?php the_permalink_rss(); ?></link>
27 <post_author><?php echo FrmXMLHelper::cdata( get_the_author_meta( 'login' ) ); // WPCS: XSS ok. ?></post_author>
28 <description></description>
29 <content><?php echo FrmXMLHelper::cdata( apply_filters( 'the_content_export', $post->post_content ) ); // WPCS: XSS ok. ?></content>
30 <excerpt><?php echo FrmXMLHelper::cdata( apply_filters( 'the_excerpt_export', $post->post_excerpt ) ); // WPCS: XSS ok. ?></excerpt>
31 <post_id><?php echo esc_html( $post->ID ); ?></post_id>
32 <post_date><?php echo esc_html( $post->post_date ); ?></post_date>
33 <post_date_gmt><?php echo esc_html( $post->post_date_gmt ); ?></post_date_gmt>
34 <comment_status><?php echo esc_html( $post->comment_status ); ?></comment_status>
35 <ping_status><?php echo esc_html( $post->ping_status ); ?></ping_status>
36 <post_name><?php echo esc_html( $post->post_name ); ?></post_name>
37 <status><?php echo esc_html( $post->post_status ); ?></status>
38 <post_parent><?php echo esc_html( $post->post_parent ); ?></post_parent>
39 <menu_order><?php echo esc_html( $post->menu_order ); ?></menu_order>
40 <post_type><?php echo esc_html( $post->post_type ); ?></post_type>
41 <post_password><?php echo FrmXMLHelper::cdata( $post->post_password ); // WPCS: XSS ok. ?></post_password>
42 <is_sticky><?php echo esc_html( $is_sticky ); ?></is_sticky>
43 <?php if ( 'attachment' === $post->post_type ) : ?>
44 <attachment_url><?php echo esc_url( wp_get_attachment_url( $post->ID ) ); ?></attachment_url>
45 <?php
46 endif;
47
48 $postmeta = FrmDb::get_results( $wpdb->postmeta, array( 'post_id' => $post->ID ) );
49 foreach ( $postmeta as $meta ) :
50 if ( apply_filters( 'wxr_export_skip_postmeta', false, $meta->meta_key, $meta ) ) {
51 continue;
52 }
53 ?>
54 <postmeta>
55 <meta_key><?php echo esc_html( $meta->meta_key ); ?></meta_key>
56 <meta_value><?php echo FrmXMLHelper::cdata( $meta->meta_value ); // WPCS: XSS ok. ?></meta_value>
57 </postmeta>
58 <?php
59 endforeach;
60
61 $taxonomies = get_object_taxonomies( $post->post_type );
62 if ( ! empty( $taxonomies ) ) {
63 $terms = wp_get_object_terms( $post->ID, $taxonomies );
64
65 foreach ( (array) $terms as $term ) {
66 ?>
67 <category domain="<?php echo esc_attr( $term->taxonomy ); ?>" nicename="<?php echo esc_attr( $term->slug ); ?>"><?php echo FrmXMLHelper::cdata( $term->name ); // WPCS: XSS ok. ?></category>
68 <?php
69 }
70 }
71 ?>
72 </view>
73 <?php
74 }
75 }
76
77 if ( empty( $taxonomies ) ) {
78 return;
79 }
80
81 global $frm_inc_tax;
82 if ( empty( $frm_inc_tax ) ) {
83 $frm_inc_tax = array();
84 }
85
86 foreach ( (array) $terms as $term ) {
87 if ( in_array( $term->term_id, $frm_inc_tax, true ) ) {
88 return;
89 }
90
91 $frm_inc_tax[] = $term->term_id;
92 $label = ( 'category' === $term->taxonomy || 'tag' === $term->taxonomy ) ? $term->taxonomy : 'term';
93 ?>
94 <term><term_id><?php echo esc_html( $term->term_id ); ?></term_id><term_taxonomy><?php echo esc_html( $term->taxonomy ); ?></term_taxonomy><?php
95 if ( ! empty( $term->name ) ) {
96 echo '<term_name>' . FrmXMLHelper::cdata( $term->name ) . '</term_name>'; // WPCS: XSS ok.
97 }
98 if ( ! empty( $term->description ) ) {
99 echo '<term_description>' . FrmXMLHelper::cdata( $term->description ) . '</term_description>'; // WPCS: XSS ok.
100 }
101 echo '<term_slug>' . esc_html( $term->slug ) . '</term_slug>';
102 echo '</term>';
103 }
104