downloadtaky
  • 0
Новичок

Изменить CSS через панель управления темами

  • 0

Привет всем. Я пытаюсь создать расширенную панель управления для своего первого шаблона WordPress, но не могу добавить нужную мне функцию. Функция, которую я пытаюсь добавить, — это возможность выбирать положение DIV (слева и снизу) через панель администратора. (Извините меня за мой очень плохой английский)

Вот код, который у меня есть в моем functions.php

$shortname = appacqua
array( "name" => "Point on the map",
    "type" => "section"),
array( "type" => "open"),
array(  "name" => "Have I to activate zona 1?",
        "desc" => "Select if you want to show the first zone",
        "id" => $shortname."_zona1c",
        "type" => "checkbox",
        "std" => "false"),
array( "name" => "Zona 1",
    "desc" => "Choose the position",
    "id" => $shortname."_zona1x",
    "type" => "text",
    "std" => "Left:???"),
array( "type" => "close"),

Я вижу «поле» в своей панели администратора, и у меня нет проблем с флажком, если я повторяю $shortname.»_zona1x». Он показывает число, единственная проблема, с которой я сталкиваюсь, это когда я пытаюсь добавить это в мой style.css:

.zona1{width:27px;height:27px;background:url(icone/1.png) no-repeat;position:absolute;bottom:0;left:<?php echo $appacqua_zona1x;?>px;}

Это не работает… Если я использую Google Chrome для просмотра элемента, он дает мне что-то вроде этого:

width: 27px;
height: 27px;
background: url(icone/1.png) no-repeat;
position: absolute;
bottom: 0;
left: <?php echo $appacqua_zona1x;?>px;

Что я делаю неправильно? Большое спасибо за помощь.

Знаете ли вы, есть ли способ создать предварительный просмотр этой модификации ВНУТРИ панели управления (например, внутри iFrame или что-то в этом роде).

Допустим, я «программист, который сделал себя сам» :P, поэтому, пожалуйста, пишите «медленно» (смеется) и будьте добры ко мне, большое спасибо!

Share
  1. wordpress.stackexchange.com/questions/12619/… — Здесь ведется аналогичное обсуждение, в котором также есть полезная информация для вас.

    • 0
    • Функция, которую я пытаюсь добавить, нужна только на одной странице, поэтому для этой страницы я также могу использовать 2 таблицы стилей: 1 для тела и т. д. и 1 для div, который я хотел бы переместить. Я пытаюсь объяснить кое-что о своем проекте, я создаю шаблон для итальянского агентства недвижимости, которое не хочет использовать карты Google [ 🙁 ], они дали мне свою карту и хотят иметь возможность перемещать это div, которые будут указателями на карте, как только квартира освободится, поэтому функция будет использоваться только на странице с именем mappa.php.Сейчас пытаюсь добавить то, что вы мне сказали, скоро отпишусь, Спасибо!

      • 0
    • Теперь это работает 🙂 Они внутри моего header.php = <link rel="stylesheet" type="text/css" media="all" href="/stylemappa.css» /> Внутри stylemappa.php есть: .zona1{ширина:27px;высота:27px;фон:#000;z-index:10000;позиция:относительная;сверху:px;left:px;} Всем большое спасибо!

      • 0
  2. Судя по всему, вы добавляете php прямо в css, что не сработает. Вам нужно написать в сам файл css или сбросить его прямо в html, как сказал Джереми, когда я это пишу 🙂

    Написание нового файла CSS каждый раз, когда вы вносите какие-либо изменения, может нагрузить вашу систему, но работает хорошо, если вы не вносите много динамических изменений в живой сайт, например, тема Twentyten Weaver делает это.

    Простой способ сделать это — превратить ваш файл.css в файл.php со следующим вверху, а ваш php/css — после.

    header('Content-Type: text/css');
    

    В качестве альтернативы можно написать это в заголовке вашего html, многие плагины делают это, и изменение разметки может раздражать, поскольку она не является семантически отдельной, но это также очень просто.

    Обычно это делается с помощью API параметров: http://codex.wordpress.org/Options_API.

    Вот пример, который использовал add_option в бэкенде для цвета фона (например, он помещается в header.php).

    body {
      background-color: <?php echo get_option('background_color'); ?>;
    

    Для предварительного просмотра вы можете подключиться к preview_post_link по умолчанию и использовать iframe, вот пример.

     <iframe src="<?php echo clean_url(apply_filters('preview_post_link', add_query_arg('preview', 'true', get_permalink($post->ID)))); ?>" width="100%" height="600" ></iframe>
    

    Пожалуйста, помните, что при написании динамических стилей возникают проблемы с производительностью, и вам следует больше исследовать эту тему в зависимости от контекста.

    • 0
  3. Файл style.css не является php-файлом, поэтому он не может выполнять php-код. Если вы хотите включить эти стили, вам нужно будет либо создать динамический генератор css и включить его в заголовок вашей темы, либо включить стили в тег стиля.

    Я видел, как это делается в обоих направлениях, и я считаю приемлемым любой из них.

    Генератор css может кэшироваться пользователем, поэтому он лучше работает.

    • 0

Оставить ответ

You must login to add an answer.