Heim Backend-Entwicklung PHP-Tutorial Einführung in das Hinzufügen fester Felder zu Artikeln in WordPress

Einführung in das Hinzufügen fester Felder zu Artikeln in WordPress

Jul 04, 2018 pm 02:04 PM

Dieser Artikel stellt hauptsächlich die Einführung des Hinzufügens fester Felder zu Artikeln in WordPress vor. Jetzt kann ich ihn mit Ihnen teilen.

Lassen Sie WordPress einen Artikel hinzufügen Datentabelle, damit es auf der Artikelbearbeitungsseite bearbeitet und über die Rest-API abgerufen werden kann.

Beispiel: Fügen Sie dem Artikel ein Miniaturbild-Feld-Litpic hinzu

Fügen Sie zunächst über MySQL ein Feld-Litpic zur Artikeltabelle wp_posts hinzu

Fügen Sie dann den folgenden Code nach der Funktion des Themas hinzu. php :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

add_action( 'add_meta_boxes', 'myplugin_add_custom_box');

  

 

add_action( 'save_post', 'myplugin_save_postdata');function myplugin_add_custom_box() {

add_meta_box('myplugin_sectionid',

'设置缩略图', // 可自行修改标题文字

'myplugin_inner_custom_box',

'post');

}function myplugin_inner_custom_box( $post ) {

global $wpdb;

// Use nonce for verification

wp_nonce_field( plugin_basename( __FILE__ ),

'myplugin_noncename' );

// 获取固定字段litpic的值,用于显示之前保存的值

// 此处wp_posts新添加的字段为litpic,多个用半角逗号隔开

$date = $wpdb->get_row( $wpdb->prepare( "SELECT litpic FROM $wpdb->posts WHERE ID = %d", $post->ID) );

// litpic  字段输入框的HTML代码

echo '<label for="litpic_new_field">图片url </label>';

echo '<input type="text" id="litpic_new_field" name="litpic_new_field" value="'.$date->litpic.'" size="28" />';

// 多个字段依此类推

}

function myplugin_save_postdata( $post_id ) {

// verify if this is an auto save routine.

// If it is our form has not been submitted, so we dont want to do anything

if ( defined( ’DOING_AUTOSAVE’ ) && DOING_AUTOSAVE )return;

// verify this came from the our screen and with proper authorization,

// because save_post can be triggered at other times

if ( !wp_verify_nonce( $_POST['myplugin_noncename'], plugin_basename( __FILE__ ) ) )return;

// 权限验证

if ( 'post' == $_POST['post_type'] ) {

if ( !current_user_can( 'edit_post', $post_id ) )return;

}

// 获取编写文章时填写的固定字段的值,多个字段依此类推

$litpic = $_POST['litpic_new_field'];global $wpdb;$wpdb->update( "$wpdb->posts",

// 以下一行代码,多个字段的话参照下面的写法,单引号中是字段名,右边是变量值。半角逗号隔开

array( 'litpic' => $litpic),

array( 'ID' => $post_id ),

// 添加了多少个新字段就写多少个%s,半角逗号隔开

array( '%s'),

array( '%d')

);

}

Nach dem Login kopieren

Nach dem Hinzufügen wird auf der Artikelseite das Eingabefeld des litpic-Felds angezeigt, wie in der Abbildung gezeigt:

Aber zu diesem Zeitpunkt gibt die restliche API das Litpic-Feld nicht aus.

Öffnen Sie die Datei /wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php.

Fügen Sie den folgenden Code hinzu:

1

2

3

if ( ! empty( $schema['properties']['litpic'] ) ) {           

$data['litpic'] = $post->litpic;

        }

Nach dem Login kopieren

1

2

3

4

5

'litpic'        => array(                   

'description' => __( 'A litpic to protect access to the content and excerpt.' ),

                    'type'        => 'string',

                    'context'     => array( 'view', 'edit', 'embed' ),

                ),

Nach dem Login kopieren

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

$post_type_attributes = array(            'title',

            'editor',

            'author',

            'excerpt',

            'thumbnail',

            'comments',

            'revisions',

            'page-attributes',

            'post-formats',

            'custom-fields',

            'litpic',

        );        $fixed_schemas = array(            'post' => array(                'title',

                'editor',

                'author',

                'excerpt',

                'thumbnail',

                'comments',

                'revisions',

                'post-formats',

                'custom-fields',

                'litpic',

            ),

Nach dem Login kopieren

1

2

3

4

5

6

case 'litpic':                   

$schema['properties']['litpic'] = array(                       

'description' => __( 'The ID for the litpic of the object.' ),

                        'type'        => 'string',

                        'context'     => array( 'view', 'edit', 'embed' ),

                    );                    break;

Nach dem Login kopieren

Jetzt kann die Rest-API das Litpic-Feld ausgeben.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Über den ActiveMQ-Stomp-Klassencode

Über Ergänzungen, Löschungen und Änderungen des Yii-Frameworks

Das obige ist der detaillierte Inhalt vonEinführung in das Hinzufügen fester Felder zu Artikeln in WordPress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung May 06, 2024 pm 10:45 PM

PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung

So ändern Sie die Seitenbreite in WordPress So ändern Sie die Seitenbreite in WordPress Apr 16, 2024 am 01:03 AM

So ändern Sie die Seitenbreite in WordPress

In welchem ​​Ordner liegen WordPress-Artikel? In welchem ​​Ordner liegen WordPress-Artikel? Apr 16, 2024 am 10:29 AM

In welchem ​​Ordner liegen WordPress-Artikel?

So erstellen Sie eine Produktseite in WordPress So erstellen Sie eine Produktseite in WordPress Apr 16, 2024 am 12:39 AM

So erstellen Sie eine Produktseite in WordPress

Wo ist die WordPress-Vorlagendatei? Wo ist die WordPress-Vorlagendatei? Apr 16, 2024 am 11:00 AM

Wo ist die WordPress-Vorlagendatei?

So suchen Sie nach Autoren in WordPress So suchen Sie nach Autoren in WordPress Apr 16, 2024 am 01:18 AM

So suchen Sie nach Autoren in WordPress

Welche WordPress-Version ist stabil? Welche WordPress-Version ist stabil? Apr 16, 2024 am 10:54 AM

Welche WordPress-Version ist stabil?

Welche Sprache wird zur Entwicklung von WordPress verwendet? Welche Sprache wird zur Entwicklung von WordPress verwendet? Apr 16, 2024 am 12:03 AM

Welche Sprache wird zur Entwicklung von WordPress verwendet?

See all articles