Maison >Tutoriel CMS >WordPresse >Une brève analyse de la façon d'ajouter un panneau de champs personnalisé dans WordPress

Une brève analyse de la façon d'ajouter un panneau de champs personnalisé dans WordPress

青灯夜游
青灯夜游avant
2023-03-06 19:40:311579parcourir

Comment ajouter un panneau de champs personnalisé dans WordPress ? L'article suivant vous présentera comment ajouter un panneau de champs personnalisé dans WordPress. J'espère qu'il vous sera utile !

Une brève analyse de la façon d'ajouter un panneau de champs personnalisé dans WordPress

Lorsque nous écrivons des articles dans WordPress, nous utilisons souvent certains champs personnalisés, comme les deux balises méta de description de page Web et de mots-clés. Concernant ces deux balises, vous pouvez lire ce que j'ai écrit auparavant : Un article. WordPress définit une description et des mots clés indépendants

Habituellement, lors de l'ajout de champs personnalisés et de leurs valeurs, nous allons manuellement dans la liste déroulante du module "Champs personnalisés" pour sélectionner les champs correspondants, puis les saisir. La valeur doit être soumise et attendue pendant une courte période, ce qui semble un peu gênant. Alors, est-il possible de créer un panneau séparé pour ces champs personnalisés couramment utilisés et de simplement remplir le contenu directement ? Tout comme les balises d'article, vous pouvez ajouter des balises directement sans les soumettre séparément. La réponse est oui, voici le rendu :

Une brève analyse de la façon dajouter un panneau de champs personnalisé dans WordPress

Maintenant, je vais vous apprendre comment fonctionner, mettez simplement tout le code suivant dans les fonctions.php du thème actuel

1 Créez les informations de champ requises.

 Ici, nous ajouterons deux champs personnalisés, nommés respectivement _description_value et _keywords_value. Vous pouvez ajouter plusieurs éléments au tableau suivant pour atteindre l'objectif d'ajouter plusieurs champs personnalisés.

Le premier élément du tableau, name, est le nom du champ personnalisé. Dans ce code, le nom du champ personnalisé est la valeur du nom plus _value pour éviter les conflits avec d'autres codes, tels que _description_value est la valeur par défaut ; pour la valeur du champ personnalisé, lorsque vous publiez un article et que le champ personnalisé ne renseigne aucune valeur, la valeur par défaut sera utilisée ; le titre est le titre du module du champ personnalisé, tel que « Résumé », « Catégorie » et « » Tag" sur la page d'édition de l'article, il s'agit du nom du module.

$new_meta_boxes =array(
  "description" => array(
    "name" => "_description",
    "std" => "这里填默认的网页描述",
    "title" => "网页描述:"),

  "keywords" => array(
    "name" => "_keywords",
    "std" => "这里填默认的网页关键字",
    "title" => "关键字:"));

2. Créez une zone de saisie de champ personnalisée

Le code suivant sera utilisé pour créer un champ personnalisé et une zone de saisie, copiez-le simplement

function new_meta_boxes() {
  global $post, $new_meta_boxes;

  foreach($new_meta_boxes as $meta_box) {
    $meta_box_value = get_post_meta($post->ID, $meta_box['name'].'_value', true);

    if($meta_box_value == "")
      $meta_box_value = $meta_box['std'];

    // 自定义字段标题
    echo&#39;<h3>&#39;.$meta_box[&#39;title&#39;].&#39;</h3>&#39;;

    // 自定义字段输入框
    echo &#39;<textarea cols="60" rows="3" name="&#39;.$meta_box[&#39;name&#39;].&#39;_value">&#39;.$meta_box_value.&#39;</textarea><br />&#39;;
  }
   
  echo &#39;<input type="hidden" name="ludou_metaboxes_nonce" id="ludou_metaboxes_nonce" value="&#39;.wp_create_nonce( plugin_basename(__FILE__) ).&#39;" />&#39;;}

3. Créez un module de champ personnalisé

Le code suivant ajoutera un module de champ personnalisé à la page d'édition de l'article, qui utilise la fonction d'ajout de module WordPress add_meta_box. C'est exactement l'inverse de ce qui a été fait dans l'article précédent Suppression des modules associés sur la page d'édition d'articles WordPress.

function create_meta_box() {
  if ( function_exists(&#39;add_meta_box&#39;) ) {
    add_meta_box( &#39;new-meta-boxes&#39;, &#39;自定义模块&#39;, &#39;new_meta_boxes&#39;, &#39;post&#39;, &#39;normal&#39;, &#39;high&#39; );
  }}

4. Sauvegardez les données de l'article

Toutes les préparations ont été faites auparavant, mais le plus important est de sauvegarder les informations dans nos champs personnalisés.

function save_postdata( $post_id ) {
  global $new_meta_boxes;
   
  if ( !wp_verify_nonce( $_POST[&#39;ludou_metaboxes_nonce&#39;], plugin_basename(__FILE__) ))
    return;
   
  if ( !current_user_can( &#39;edit_posts&#39;, $post_id ))
    return;
               
  foreach($new_meta_boxes as $meta_box) {
    $data = $_POST[$meta_box[&#39;name&#39;].&#39;_value&#39;];

    if($data == "")
      delete_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, get_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, true));
    else
      update_post_meta($post_id, $meta_box[&#39;name&#39;].&#39;_value&#39;, $data);
   }}

5. Connectez la fonction à l'action spécifiée

C'est la dernière étape et l'étape la plus importante. Ce que nous devons faire est de connecter la fonction à l'action spécifiée pour permettre au programme WordPress de s'exécuter. la fonction que nous avons écrite auparavant :

add_action(&#39;admin_menu&#39;, &#39;create_meta_box&#39;);
add_action(&#39;save_post&#39;, &#39;save_postdata&#39;);

D'accord, c'est tout ce que nous avons à faire. Vous pouvez maintenant appeler ces deux champs personnalisés dans votre thème. Utilisez un éditeur de texte pour ouvrir l'en-tête dans le répertoire du thème. suivant le code avant , vous pouvez personnaliser les balises de description et de mots-clés de votre page web. Pour des opérations plus spécifiques, veuillez utiliser le moteur de recherche :

<?phpif (is_single()) {
  // 自定义字段名称为 description_value
  $description = get_post_meta($post->ID, "_description_value", true);

  // 自定义字段名称为 keywords_value
  $keywords = get_post_meta($post->ID, "_keywords_value", true);

  // 去除不必要的空格和HTML标签
  $description = trim(strip_tags($description));
  $keywords = trim(strip_tags($keywords));

  echo &#39;<meta name="description" content="&#39;.$description.&#39;" />
<meta name="keywords" content="&#39;.$keywords.&#39;" />&#39;;
}
?>

Apprentissage recommandé : "Tutoriel WordPress"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer