travisnorthcutt
  • 0
Гуру

Переместить кнопки общего доступа (в Jetpack) в начало сообщения?

  • 0

Как переместить общие кнопки, включенные в Jetpack, чтобы они располагались перед содержимым сообщения или страницы, а не после него? Я вижу, что sharing-service.php функция, которая печатает кнопки, подключена к хуку фильтра the_content:add_filter( 'the_content', 'sharing_display', 19 );

Однако я не уверен, что поместить в мой файл functions.php, чтобы переопределить это. Я предполагаю, что мне каким-то образом нужно, чтобы вывод из sharing-service.php предварялся, the_content а не добавлялся к нему.

Share
  1. В основном это строка 480 в sharing-service.php, где говорится:

    return $text.$sharing_content;
    

    и это должно быть

    return $sharing_content.$text;
    

    теперь изменение этого файла не сохранит ваши изменения в обновлениях, поэтому вы можете скопировать эту функцию (sharing_display) в свой functions.php и переименовать ее во что-то другое, скажем, my_sharing_display и внести изменения там.

    Затем вам нужно удалить фильтры, которые добавляет плагин, и заменить их своими, поэтому в файле functions.php добавьте:

    //remove old
    remove_filter( 'the_content', 'sharing_display');
    remove_filter( 'the_excerpt', 'sharing_display');
    //add new
    add_filter( 'the_content', 'my_sharing_display', 19 );
    add_filter( 'the_excerpt', 'my_sharing_display', 19 );
    

    Обновлять

    хук remove_filter на самом деле не удаляет, потому что ему не хватает параметра priority из кодекса:

    Важно: чтобы удалить хук, аргументы $function_to_remove и $priority должны совпадать при добавлении хука. Это касается как фильтров, так и действий. Предупреждение о сбое удаления не выдается.

    поэтому измените:

    remove_filter( 'the_content', 'sharing_display');
    remove_filter( 'the_excerpt', 'sharing_display');
    

    к:

    remove_filter( 'the_content', 'sharing_display',19);
    remove_filter( 'the_excerpt', 'sharing_display',19);
    
    • 0
  2. попробуй это:

    <?php 
    if ( function_exists( 'sharing_display' ) ) {
        echo sharing_display();
    }
    the_content();
    ?>
    

    работал на меня

    • 0

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

You must login to add an answer.