Ich versuche, eine bedingte Anweisung für die Inhaltsbreite in der functions.php meines Themas zu erstellen. Einige Kategorien haben also eine content_width von 580, andere eine 900. Dadurch funktioniert das oEmbed überall dort, wo es verwendet wird.
Normalerweise haben Sie dies in Ihrer functions.php:
if ( ! isset( $content_width ) )
$content_width = 900;
Ich möchte so etwas:
if(in_category(array('news','blog'))) {
$content_width = 580;
}
elseif(is_page()) {
$content_width = 580;
}
else {
$content_width = 900;
}
Wenn ich dies in meiner functions.php habe, wird die Inhaltsbreite zu dem, was ich in der letzten Zeile schreibe.
Vermisse ich etwas Ist das überhaupt möglich?
Vielen Dank!
theme-development
conditional-content
oembed
Steve Lambert
quelle
quelle
Antworten:
Nein, es ist nicht möglich. $ content_width ist eine themenweite Konstante, die in functions.php festgelegt wird, bevor eine der Abfragebedingungen festgelegt wird.
$ content_width wird verwendet, um die Zwischenbildgrößen in zu bestimmen
image_send_to_editor
. Die "große" Bildgröße wird auf den Wert von $ content_width gesetzt.Wenn Sie diese Größen pro Kategorie ändern müssen, können Sie sich in diesen Filter einbinden. Ein allgemeines Beispiel dafür finden Sie in meiner Antwort auf die Frage set_post_thumbnail_size gemäß der Admin-Seite des Post-Typs (beachten Sie, dass Dies schlägt fast immer fehl, wenn Sie versuchen, dies nach Kategorien zu tun, da die Beitragskategorie fast immer nicht festgelegt wird, wenn der Benutzer zum ersten Mal ein Bild hochlädt. Die Einstellung nach Beitragstyp ist etwas zuverlässiger.
Unabhängig davon, wie breit Ihre Beiträge und Seiten sind, setzen Sie $ content_width auf das breiteste Bild, das ein Benutzer in einen Beitrag aufnehmen soll.
quelle
Vielleicht funktioniert das:
quelle