• Как записать путь до медиафайлов wordpress через php?

    истинное решение вопроса:

    Есть нативная функция wp_upload_dir() для получения массива данных о папке с медиафайлами


    functions.php

    $VAB_UPLOAD = wp_upload_dir();
    if ( ! defined( 'VAB_UPLOAD_DIR' ) ) {
    	define( 'VAB_UPLOAD_DIR', $VAB_UPLOAD['basedir'] );
    }
    if ( ! defined( 'VAB_UPLOAD_URL' ) ) {
    	define( 'VAB_UPLOAD_URL', $VAB_UPLOAD['baseurl'] );
    }



    где-то

    ECHO VAB_UPLOAD_DIR;
    ECHO '<BR>';
    ECHO VAB_UPLOAD_URL;

  • Как записать путь до медиафайлов wordpress через php?

    zeaovede, крайне не рекомендую использовать подобный вариант (На мой взгляд, это тот ещё костыль).

    Решение дал Артем Золин
  • Как вывести публикации авторизованного пользователя?

    Как такое реализовать без плагина?


    Регистрируйте новый тип записей, и если нужно, новую роль. Определяйте права доступа, например,
    где он может видеть свои публикации и проводить с ними некие манипуляции
  • Как сделать сайдбар на wordpress?

    Доброго времени суток.

    Ваш вопрос, на мой взгляд, немного запутан.

    Каким образом можно реализовать такой же сайдбар?


    Решение wp_list_pages. Вопрос в том, что в аргументах

    $arg=array('title_li'=>'','echo'=>0);
    echo wp_list_pages($arg);
    
    //даже так выводит дочерние wp_list_pages();


    результат

    626508d9e6591476970431.jpeg


    А именно как вывести страницы у которых есть дочерние страницы?


    Вам необходимо вывести только те страницы, которые имеют дочерние?
  • Как скрыть поле если оно не заполнено?

    Подскажите как сделать так, что бы поля ozon_ru_link и apteka_ru_link выводились только при условии что они заполнены ссылками в админке


    проверить существует ли значение у указанного поля

    $value = get_field( 'text_field' );
    
    if( $value ) {
    	echo $value;
    }
    else {
    	echo 'empty';
    }
    
    ....
    
    
    
    if ( 'проверяем заполнено ли поле apteka_ru_link' ) { ?>
    	<div class="knopka1">
    		<a rel="nofollow" target="_blank" class="pokypka" href="{{ get_field('apteka_ru_link') }}">
    			<img class="knopochka" src="/wp-content/uploads/2022/04/Без-имени-2.png">
    		</a>
    	</div>
    <?php }
    if ( 'проверяем заполнено ли поле ozon_ru_link' ) { ?>
    <div class="knopka2">
    	<a rel="nofollow" target="_blank" class="pokypka" href="{{ get_field('ozon_ru_link') }}">
        <img class="knopochka" src="/wp-content/uploads/2022/04/Без-имени-3.png">
    	</a>
    </div>
    <?php  }

  • Как добавить таблицу в базу данных worpress?

    Вообщето у WordPress для каждого пользователя есть личная страница... и документация понятная. Разумеется в базе есть место и для данных пользователя.

    Примеры для Айрис:

    Подключаем необходимые стили и скрипты

    add_action('admin_enqueue_scripts','load_admin_styles_scripts');
    if(!function_exists('load_admin_styles_scripts')){
      function load_admin_styles_scripts(){
        wp_enqueue_style('wp-color-picker');
        wp_enqueue_script('wp-color-picker');
    }}



    Подключаем необходимые поля форм к «Айрис» (один из вариантов)

    if(!function_exists('admin_footer_script')){
      function admin_footer_script(){?>
        <script type="text/javascript">
          jQuery(document).ready(function($){
            $('.wpColorChoose').wpColorPicker();});
        </script><?php }}
    add_action('admin_footer','admin_footer_script',99);



    Добавляем «Айрис» на страницу пользователей

    if(!function_exists('VAB_user_fields')){
      function VAB_user_fields($user){
        global $pagenow;
        if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
        wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
        $id=$user->ID;
        $color=get_the_author_meta('myColor',$id);//получаем мета данные с ключом myColor для текущего пользователя
        echo'<input name="myColor" id="color" type="text" class="wpColorChoose" value="'.$color.'">';
    }}}
    add_action('show_user_profile','VAB_user_fields');
    add_action('edit_user_profile','VAB_user_fields');



    Обрабатываем данные

    if(!function_exists('save_VAB_user_fields')){
      function save_VAB_user_fields($user_id){
        $nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
        if(!$nonce){return;}//проверяем наши nonce поля
        if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
        $myColor=get_the_author_meta('myColor',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
        $newColor=$_POST['myColor'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
        if(empty($newColor)){//если данные пустые удалим мета
          delete_user_meta($user_id,'myColor');
        }else{//иначе сохраним в мета
         update_user_meta($user_id,'myColor',$newColor);}}}
    add_action('personal_options_update','save_VAB_user_fields');
    add_action('edit_user_profile_update','save_VAB_user_fields');



    Добавим для примера checkbox

    if(!function_exists('VAB_user_fields2')){
      function VAB_user_fields2($user){
        global $pagenow;
        if($pagenow=='profile.php'||$pagenow=='user-edit.php'){
          wp_nonce_field('VAB_mode_ufields_nonce','VAB_ufields_nonce');
          $id=$user->ID;
          $uMeta=get_the_author_meta('uMeta',$id);//получаем мета данные с ключом myColor для текущего пользователя
          $myCheckbox=isset($uMeta['myCheckbox'])?'checked="checked"':'';
          $myColor=isset($uMeta['myColor'])?$uMeta['myColor']:'';
          echo'<input name="uMeta[myCheckbox]" id="myCheckbox" type="checkbox" '.$myCheckbox.'>';
          echo'<br><br>';
          echo'<input name="uMeta[myColor]" id="myColor" type="text" class="wpColorChoose" value="'.$myColor.'">';
        }}}
    add_action('show_user_profile','VAB_user_fields2');
    add_action('edit_user_profile','VAB_user_fields2');



    Обрабатываем данные

    if(!function_exists('save_VAB_user_fields2')){
      function save_VAB_user_fields2($user_id){
        $nonce=filter_input(INPUT_POST,'VAB_ufields_nonce',FILTER_SANITIZE_STRING);
        if(!$nonce){return;}//проверяем наши nonce поля
        if(!wp_verify_nonce($nonce,'VAB_mode_ufields_nonce')){return;}//проверяем наши nonce поля
        $uMeta=get_the_author_meta('uMeta',$user_id);//получаем мета данные с ключом myColor для текущего пользователя
        $newuMeta=$_POST['uMeta'];//проверяем передачу пост данных... можно доп. обработать фильтрами в зависимости от типа данных
        if(empty($newuMeta['myCheckbox'])&&empty($newuMeta['myColor'])){//если данные пустые удалим мета
          delete_user_meta($user_id,'uMeta');
        }else{//иначе сохраним в мета
         update_user_meta($user_id,'uMeta',$newuMeta);}}}
    add_action('personal_options_update','save_VAB_user_fields2');
    add_action('edit_user_profile_update','save_VAB_user_fields2');



    Аналогично получаете и выводите в нужном месте ( get_the_author_meta )... аватарки, не аватарки, управление публичностью данных... можно наворотить что угодно ... все что в голову взбредет...
  • Почему поиск на Wordpress переносит на главную?

    Вы всегда можете открыть файлы дефолтных тем и заглянуть в них...

    например

    <?php
    /**
     * The searchform.php template.
     *
     * Used any time that get_search_form() is called.
     *
     * @link https://developer.wordpress.org/reference/functions/wp_unique_id/
     * @link https://developer.wordpress.org/reference/functions/get_search_form/
     *
     * @package WordPress
     * @subpackage Twenty_Twenty_One
     * @since Twenty Twenty-One 1.0
     */
    
    /*
     * Generate a unique ID for each form and a string containing an aria-label
     * if one was passed to get_search_form() in the args array.
     */
    $twentytwentyone_unique_id = wp_unique_id( 'search-form-' );
    
    $twentytwentyone_aria_label = ! empty( $args['aria_label'] ) ? 'aria-label="' . esc_attr( $args['aria_label'] ) . '"' : '';
    ?>
    <form role="search" <?php echo $twentytwentyone_aria_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped above. ?> method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    	<label for="<?php echo esc_attr( $twentytwentyone_unique_id ); ?>"><?php _e( 'Search&hellip;', 'twentytwentyone' ); // phpcs:ignore: WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></label>
    	<input type="search" id="<?php echo esc_attr( $twentytwentyone_unique_id ); ?>" class="search-field" value="<?php echo get_search_query(); ?>" name="s" />
    	<input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button', 'twentytwentyone' ); ?>" />
    </form>


    и затем подправить код под себя
  • Почему поиск на Wordpress переносит на главную?

    <?php
    if(!defined('ABSPATH')){exit;}
    $unique_id=wp_unique_id('search-form-');
    ...
    <input type="search" name="s" class="s" id="<?php echo esc_attr($unique_id);?>" title="<?php printf(esc_attr__('Поле для ввода текста','VAB'));?>" placeholder="<?php echo esc_attr__('Текст поиска','VAB'); ?>" value="<?php echo get_search_query();?>"/>
    ...


    что в search.php?

    давайте оба файла полностью...
  • [Решено] Как исправить ошибку "There was an error. You are probably offline" при сохранении виджетов?

    Постучите к хостеру и логи посмотрите...заголовок OPTIONS возможно заблокирован.. ну или верните старый вариант виджетов...сомневаюсь по поводу сертификата...
  • При обновлении шаблона OceanWP сайт падает. Как исправить?

    Ну вот и открывайте этот файл и исправьте эту строку. А вот что нужно исправить , Вы не показали (не полный текст ошибки) . Либо пишите в тех поддержку темы. Либо попробуйте сменить версию php
  • Как переместить "мой профиль" из тулбара в хедер и затем скрыть тулбар?

    разумеется можно.
    для каждого юзера отдельно можно убрать через настройки ( убрать галоку для верхней панели )

    6242df7b11149059406322.jpeg

    либо в функциональном файле для всех

    add_filter( 'show_admin_bar', '__return_false' );

    Разместить ссылку на профиль можно, либо отредактировав код возле Ваших соц сетей

    echo '<a href="'. get_site_url() . '/wp-admin/profile.php">Профиль</a>';


    либо смотрите виджеты темы и возможности в целом

    можно так же создать шорткод и вставить в виджет где-либо,

    либо использовать фильтры для меню и добавить нужные ссылки в меню

    add_filter('wp_nav_menu_items','add_menu_link',10,2);
    if(!function_exists('add_menu_link')){function add_menu_link($items,$args){
    ...


    да и вообще через любой ближний хук/акшн или подобное...
  • Отображение изображений в Wordpress?

    Максим, проверяйте, что возвращают данные

    <div class="entry-content pad_min">
          <div class="slider_page">
            <?php if ( have_rows( 'acf_slider' ) ) : ?>
            <?php while ( have_rows( 'acf_slider' ) ) : the_row(); ?>
            <div class="slider_page_slid">
              <?php $acf_slid = get_sub_field( 'acf_slid' ); ?>
              <?php if ( $acf_slid ) { ?>
              <a href="<?php echo $acf_slid['url']; ?>"><img src="<?php echo $acf_slid['url']; ?>" alt="<?php echo $acf_slid['alt']; ?>" /></a>
              <?php } ?>
            </div>
            <?php endwhile; ?>
            <?php else : ?>
            <?php // no rows found ?>
            <?php endif; ?>
          </div>
        </div>
  • Как сделать отдельные страницы во фронтенде для каждого пользователя?

    LAisen, поменяйте скриншоты... ничего не видно... Жалеете место на хостинге habr.com?)))

    На самом деле все просто. Вопрос в том, как Вы храните эти данные в базе. Если, к примеру, делать по документации вордпресс и сохранять данные в таблице usermeta, то и связь с определенным пользователем будет явной по «ID»

    колонка «user_id»

    623c54e03ca90723566099.jpeg


    остается, где-то, на какой-то нужной Вам страничке на фронте сделать проверку с помощью функций is_user_logged_in и get_current_user_id отдать соответственно данные согладно id юзера.... ну а, если вы как-то иначе сохраняете, то добавьте в данные куда-либо id юзера для которого сохраняете и затем выводите с соответствующей проверкой...
  • Как сделать отдельные страницы во фронтенде для каждого пользователя?

    мало данных. что за странички?!... Совсем не ясно, что Вам нужно

    Вообще-то у каждого пользователя есть свой профиль. Добавляйте туда нужную инфу и каждый будет видеть только свое... Если, разумеется, речь о просто инфе

    типо

    623ae8cf2a0fc548728263.jpeg


    в противном...

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

    623ae6fbb63b2560810023.jpeg
    623ae703c94a3316860601.jpeg


    и не мог просматривать страницы предназначенные для других пользователей


    просматривать или редактировать? на фронте или в админки?

    вообще Ваш вопрос создает очень много вопросов. Разверните его...
  • Отображение изображений в Wordpress?

    либо что-то еще?


    вполне возможно... на скрине в вопросе, где нет изображений, видно что разметка едет...

    как уже и говорил: угадать не возможно... нужно смотреть/разбираться в живую, а не со скринов...
  • Отображение изображений в Wordpress?

    Максим, так Вы зайдите в админку ворпресс на вкладку страницы и найдите по названию нужную. Можно также через ссылки, но тут все зависит от темы. Если Вы авторизованы, то при наличии панели верхней в ней должна быть ссылка на редактирование текущей записи
    Верхняя панель

    623adc83b2f29971921544.jpeg


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

    623ade43a82ed943621589.jpeg

    все напрямую зависит от темы и настроек сайта...
  • Отображение изображений в Wordpress?

    Не возможно угадать, как и через что оформлена запись. Откройте на редактирование запись, где все как надо отображается и внимательно посмотрите, как все оформлено, включая разметку...
  • Почему рубрики в wordpress не открываются?

    Patimat Kamutayeva,

    для начала взгляните на эту строку :
    <li <?php echo get_category_link(6); ?> id="content_menu_all">Показать весь каталог</li>
    - не в те теги get_category_link вставили, пропустили теги «a»

    В файле functions я написала


    Как я понимаю, Вы говорите о файле functions.php

    Но Вы ведь этот код написали, не тупо вставив в файл functions, а внутри какой-то функции !??! Дайте нам по-больше информации о том, что Вы делаете...

    Fatal error: Cannot redeclare вылезает как правило, если «создано» две функции с одним и тем же названием

    если Вы создали функцию аля :

    function get_categories(){
    	
    	...
    }


    то Вам просто надо её переименовать т.к. у разработчиков вордпресс это название занято ( функция объявлена )...

    и покажите полное сообщение об ошибке. в ней ведь, как правило, указана строка проблемная, а так же название файла, в котором происходит повторное объявление функции.
  • Почему рубрики в wordpress не открываются?

    дак написано ведь

    Функция определена дважды

    Аля

    function Hi() {
    	echo "Привет Мир";
    }
    function Hi() {
    	echo "Привет Fatal error: Cannot redeclare Hi()";
    }
    	Hi();

  • Как составить функцию wp_insert_post() без дубллирования страниц?

    Вам необходимо использовать какое - либо событие, либо создать свое, либо, банально, использовать проверку существует ли страница эта ( add_action(), do_action(), get_page_by_path() )... ну или комплексом...