it-swarm.com.de

Erstellen Sie die Hierarchie der Taxonomien für ein Dropdown-Formularmenü neu?

Ich habe ein Formular, das ein Dropdown-Menü enthält. Dieses Formular befindet sich auf einer Seite form.php und ist nicht Teil meines Themas. Es existiert außerhalb meiner Site. Dieses Dropdown-Menü enthält meine Werteliste für eine benutzerdefinierte Taxonomie mit dem Namen Formate . Meine Formate lauten wie folgt:

Entry Form
Facebook
  - Entry Form
  - Page
Twitter

Das ist mein Code bis jetzt:

<?php include("wp-blog-header.php"); ?>
<?php 
global $wpdb;
$getFormats = $wpdb->get_results($wpdb->prepare("

        SELECT * FROM wp_terms p 

        LEFT OUTER JOIN wp_term_taxonomy t ON p.term_id = t.term_id

        WHERE t.taxonomy = 'format'

        ")); ?> // This gets all the values for the format taxonomy

<form> //start form
<select name="format"> //start dropdown

<?php
foreach ($getFormats as $format) { //spit out the formats
    echo "<option value='".$format->name."'>".$format->name."</option>";
} ?>

</select> //end dropdown
</form> // end form
?>

Bisher sieht mein Dropdown so aus:

Entry Form
Facebook
Entry Form
Page
Twitter

Erste Frage: Wie kann ich die Hierarchie zum Festhalten bringen (d. H. Die Einrückungen beibehalten)?

Meine HTML-Ausgabe lautet wie folgt:

<option value="Entry Form">Entry Form</option>
<option value="Facebook">Facebook</option>
<option value="Entry Form">Entry Form</option>  // <---- this is gonna be a problem
<option value="Page">Page</option>
<option value="Twitter">Twitter</option>

Zweite Frage: Sie werden feststellen, dass die Ausgabe für die zweite Instanz von Entry Form mit der ersten Instanz identisch ist. Offensichtlich wird dies ein Problem beim Absenden des Formulars sein. Wie kann ich das einzigartig machen?

1
Sweepster

Sie können die Standard WordPress-Funktion verwenden, das Dropdown-Menü bereits formatieren und beide Probleme gleichzeitig lösen.

Wie so:

define( 'WP_USE_THEMES', false );
require( './wp-load.php' );

wp_dropdown_categories(
    array(
        'child_of' => 0,
        'class' => 'postform', 
        'depth' => 0,
        'echo' => 1,
        'exclude' => '', 
        'hide_empty' => false, 
        'hide_if_empty' => false,
        'hierarchical' => true,
        'id' => '',
        'name' => 'cat-dropdown', 
        'order' => 'ASC',
        'orderby' => 'name', 
        'selected' => 0, 
        'show_count' => 0,
        'show_option_all' => '', 
        'show_option_none' => __('None'),
        'tab_index' => 0, 
        'taxonomy' => 'category',
    )
);

Ausgänge:

<select name='cat-dropdown' id='cat-dropdown' class='postform' >
    <option value='-1'>None</option>
    <option class="level-0" value="2">Other</option>
    <option class="level-0" value="1">Uncategorized</option>
    <option class="level-1" value="4">&nbsp;&nbsp;&nbsp;Other</option>
    <option class="level-2" value="5">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Other</option>
</select>

Für die Standardkategorie: categories list

4
brasofilo