Erweiterte benutzerdefinierte Felder Ausgeblendetes Feld

Lesezeit: 2 Minuten

Ich verwende ACF innerhalb einer WordPress-Site, um einige Optionen für einen benutzerdefinierten Beitragstyp zu konfigurieren, und verwende das ACF Unique ID-Plugin, um ein Feld zu generieren, das eine eindeutige ID für das Feld erstellt. Seine Konfiguration ist extrem einfach:

class acf_field_unique_id extends acf_field {

function __construct() {

    /*
    *  name (string) Single word, no spaces. Underscores allowed
    */

    $this->name="unique_id";


    /*
    *  label (string) Multiple words, can include spaces, visible when selecting a field type
    */

    $this->label = __('Unique ID', 'acf-unique_id');


    /*
    *  category (string) basic | content | choice | relational | jquery | layout | CUSTOM GROUP NAME
    */

    $this->category = 'layout';


    /*
    *  l10n (array) Array of strings that are used in JavaScript. This allows JS strings to be translated in PHP and loaded via:
    *  var message = acf._e('unique_id', 'error');
    */

    $this->l10n = array(
    );


    // do not delete!
    parent::__construct();

}


/*
*  render_field()
*
*  Create the HTML interface for your field
*
*  @param   $field (array) the $field being rendered
*
*  @type    action
*  @since   3.6
*  @date    23/01/13
*
*  @param   $field (array) the $field being edited
*  @return  n/a
*/
function render_field( $field ) {
    ?>
    <input type="text" readonly="readonly" name="<?php echo esc_attr($field['name']) ?>" value="<?php echo esc_attr($field['value']) ?>" />
    <?php
}
}

Während all dies großartig funktioniert, ist das ID-Feld als interne ID-Markierung konzipiert und muss der Endbenutzer in WordPress nicht sehen. Gibt es eine Möglichkeit, die diesem Feld zugeordnete Spalte auszublenden, damit ich keine wertvolle Bildschirmfläche verliere? Die Spalte umfasst 33 % der Breite, und da sie für ein Feld ist, das nicht benötigt wird, nimmt sie viel zu viel Platz ein. Ich habe versucht, es in CSS und Javascript zu verstecken, aber das macht die Endspalten (Repeater-Zeilennummer und die +/- Zeichen) aus irgendeinem Grund viel größer.

Haben Sie versucht, es zu ändern input[type="hidden"]?

function render_field( $field ){
    echo '<input type="hidden" readonly="readonly" name="'. esc_attr( $field['name'] ) .'" value="'. esc_attr( $field['value'] ) .'" />';
}

  • Dies würde wahrscheinlich funktionieren wenn Sie welches Feld angekreuzt haben wird mit einer gewissen bedingten Logik gerendert. Diese Funktion scheint zu rendern alle Felder, aber nur eines davon sollte ausgeblendet werden.

    – zufälliger_Benutzername

    27. Februar 2018 um 1:28 Uhr

  • Ich nahm an, dass es nur das eine Feld, Being, wiedergibt readonly und alles. Es wäre jedoch trivial, es damit zu verpacken if( $field['name'] === 'desired name' ) im Bedarfsfall

    – Xhynk

    27. Februar 2018 um 2:52 Uhr

  • @Xhynk – ja, die Tabellenzelle wird trotzdem gerendert, sodass sie nur zu einem großen, leeren Raum wird.

    – Scott Salyer

    27. Februar 2018 um 20:56 Uhr

  • Es hört sich so an, als müssten Sie es so verstecken, wie Sie es bevorzugen (type="hidden", display: none; usw.) und wenden Sie dann zusätzliches CSS für die anderen Zeilenelemente an. Es ist jedoch schwierig, genaue Ratschläge zu geben, ohne den Code zur Verfügung zu haben

    – Xhynk

    27. Februar 2018 um 21:02 Uhr

1228180cookie-checkErweiterte benutzerdefinierte Felder Ausgeblendetes Feld

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy