2016-05-11 2 views
1

В блоге, который я создал, есть ссылка на редактирование внизу каждого сообщения, когда вы смотрите на сайт в реальном времени, входивший в систему как администратор.как поставить ссылку «редактировать» под каждым выдержкой в ​​Wordpress?

Веб-сайт, который ищет способ редактировать ссылку на странице blogroll, чтобы она отображалась под каждым отчетом блога.

Я искал ответ на Google, но ничего не могу найти. Я даже не думаю, что это возможно, учитывая то, что я понимаю о условной логике Wordpress codex.

Может кто-нибудь, пожалуйста, сообщите мне, если это возможно или нет, и как подойти к этой проблеме?

== Обновление ==

Ok с руководством Тима, я расположена content.php, где логика выдержки была подготавливаются для рулона блог. предложил вставленной Тима код так:

<?php if (true == generate_show_excerpt()) : ?> 
    <div class="entry-summary" itemprop="text"> 
     <?php the_excerpt(); ?> 
         <?php 
         if(is_user_logged_in() && current_user_can("edit_post", get_the_ID())){ 
          edit_post_link("Edit this post"); 
         } 
         ?> 
    </div><!-- .entry-summary --> 
<?php else : ?> 
    <div class="entry-content" itemprop="text"> 
     <?php the_content(); ?> 
     <?php 
     wp_link_pages(array(
      'before' => '<div class="page-links">' . __('Pages:', 'generate'), 
      'after' => '</div>', 
     )); 
     ?> 
    </div><!-- .entry-content --> 
<?php endif; ?> 

Просто нужно было убедиться, что он был завернут в вызове функции PHP (то есть). Кажется, нужно работать с удовольствием.

ответ

1

Я даже не думаю, что это возможно, учитывая то, что я понимаю о условной логике Wordpress codex.

Это определенно возможно! :)

В вашей теме у вас будет, скорее всего, файл home.php, archive.php или index.php, который проходит через петлю ваших сообщений. В этом файле, там будет код, который выглядит следующим образом:

while(have_posts()): the_post(); 
    // lots of code here to display your post data 
endwhile; 

Вам необходимо непосредственно определить, где поставить, но где-то в то время как петли будут ваши выдержки (скорее всего, выглядит как get_the_excerpt(); или аналогичный). После этого вы можете поместить функцию edit_post_link().

завернутые в состоянии проверить, что пользователь вошел в систему и имеет разрешение на просмотр пост, это будет печатать «Изменить запись» ссылка, которую вы ищете:

if(is_user_logged_in() && current_user_can("edit_post", get_the_ID())){ 
    edit_post_link("Edit this post"); 
} 

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

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

+0

Хорошо, удивительный совет Тим. Мне удалось получить что-то, работающее в моем файле functions.php, но ему нужно работать с позиционированием. Отлично, что вы предложили использовать детскую тему (беспокоились, пока я не прочитал ваш последний параграф). Какая заслуга в том, что вы делаете это по-своему, используя файл functions.php? –

+0

Я бы не стал заниматься этим с помощью функции functions.php, потому что это гораздо более «тематический» вид, а не логика. Functions.php предназначен для того, чтобы содержать логику для изменения различных аспектов работы Wordpress. Выполнение этого с помощью этой логики возможно, но более запутанное - и, как вы обнаружили, управлять позиционированием сложнее. Шаблоны темы предназначены именно для этой ситуации: разместить вещи именно там, где вы хотите. –

+0

Хорошо, я нашел нужное место, чтобы поместить скрипт в файл content.php в wp. Только проблема заключается в том, что он распечатывает код функции. Думаю, мне нужно обернуть его собственным php-вызовом. –

0

Здравствуй, это простая задача

<a href="<?php get_edit_post_link($post->ID) ?>">Edit</a> 

Поместите этот код внутри, если администратор вход состояния с в цикле ..

+0

Попытаться попробовать это решение. Спасибо –

+0

Хорошо и скажи, если у меня есть какой-нибудь продел ... –

+0

Извините, вам не повезло с вашим предложением. Я нашел другое решение проблемы, изменив файл child.php моей дочерней темы. –

0

В моей конкретной установке Wordpress с использованием GeneratePress темы, я ставлю этот код PHP в моей детской темой файл functions.php, чтобы решить вопрос:

if (! function_exists('generate_posted_on')) : 
/** 
* Prints HTML with meta information for the current post-date/time and author. 
*/ 
function generate_posted_on() 
{ 
    $date = apply_filters('generate_post_date', true); 
    $author = apply_filters('generate_post_author', true); 

    $time_string = '<time class="entry-date published" datetime="%1$s" itemprop="datePublished">%2$s</time>'; 
    if (get_the_time('U') !== get_the_modified_time('U')) 
     $time_string .= '<time class="updated" datetime="%3$s" itemprop="dateModified">%4$s</time>'; 

    $time_string = sprintf($time_string, 
     esc_attr(get_the_date('c')), 
     esc_html(get_the_date()), 
     esc_attr(get_the_modified_date('c')), 
     esc_html(get_the_modified_date()) 
    ); 

    // If our date is enabled, show it 
    if ($date) : 
     printf('<span class="posted-on">%1$s</span>', 
      sprintf('<a href="%1$s" title="%2$s" rel="bookmark">%3$s</a>', 
       esc_url(get_permalink()), 
       esc_attr(get_the_time()), 
       $time_string 
      ) 
     ); 
    endif; 

    // If our author is enabled, show it 
    if ($author) : 
     printf(' <span class="byline">%1$s</span>', 
      sprintf('<span class="author vcard" itemtype="http://schema.org/Person" itemscope="itemscope" itemprop="author">%1$s <a class="url fn n" href="%2$s" title="%3$s" rel="author" itemprop="url"><span class="author-name" itemprop="name">%4$s</span></a></span> %5$s', 
       __('by','generatepress'), 
       esc_url(get_author_posts_url(get_the_author_meta('ID'))), 
       esc_attr(sprintf(__('View all posts by %s', 'generatepress'), get_the_author())), 
       esc_html(get_the_author()), 
       edit_post_link(__('Edit', 'generate'), '<span class="edit-link">', '</span>') 
      ) 
     ); 
    endif; 

} 
endif; 

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

Смежные вопросы