2012-04-09 45 views
1

我對wordpress和artisteer瘋狂。我正在嘗試一些過去非常簡單的事情 - 在我的博客頁面上打開和關閉顯示日期和帖子類別的帖子。artisteer wp-theme元數據(日期,類別)丟失

我覺得這是在content.php

global $post; 
theme_post_wrapper(
    array(
     'id' => theme_get_post_id(), 
     'class' => theme_get_post_class(), 
     'title' => theme_get_meta_option($post->ID, 'theme_show_page_title') ? get_the_title() : '', 
     'heading' => theme_get_option('theme_single_article_title_tag'), 
     'before' => theme_get_metadata_icons('date', 'header'), 
     'content' => theme_get_content() 
    ) 
); 

和指導說,你要做的就是插入或在「之前」刪除行「日期」。我已經用我的內容文件來回執行,輸出中沒有任何更改。

我找不到打印它的所有實際代碼,wordpress以前是如此簡單,以至於所有內容都深入到了10個層次,現在您必須查看數百萬個不同的函數才能找到最簡單的東西......

正如你可能會說,我通常不與WP工作=)但是,現在這是我的表,我還沒有熬夜的最新WP一對夫婦的年... ...

任何輸入到哪裏我可以找到變量讚賞...

我本來預計在某個時候發現

'發佈在'.echo($ date)'。'在分類」 .echo($類)

什麼的至少遠程類似...

回答

2

啊哈!弄清楚了!去h2標籤之後所需要的功能之前:

<div class="post-inner article"> 
    <?php echo $thumbnail; 
     if (!art_is_empty_html($title)){ 
      echo '<h2 class="postheader">'.$title.'</h2>'; 
     } 
     echo $before; 
    ?> 
<div class="postcontent"> 
<!-- article-content --> 

的情況下,別人來尋找它離開這裏的! :-)

0

所以我跑進我的Artisteer的主題沒有任何後元數據(發佈日期,類別等)的這個問題。我在藝術家設計程序中禁用了他們,因爲我不希望整個頁面看起來像博客,而是一個專業頁面。

但是,後來我意識到我確實想要我的新聞版塊(這實際上只是一個博客頁面)的發佈日期,發佈類別等數據。

我該如何恢復?

原來,這比你想象的要難...在WP和artisteer的早期版本中,你可以找到處理輸出的文件,比如索引,頁面等等,但現在它全部結束了函數互相呼叫=)

它是這樣的: WP中的每個頁面都有一個模板文件(可以在創建頁面時指定),在WP Codex中閱讀更多關於頁面模板的內容。 您的博客頁面運行的是home.php或archive.php(取決於您是否正在查看帖子的存檔或只是定期的「主頁」項目,我稱之爲我的「新聞」,因爲博客只是一個小我的網站的新聞部分)。

打印出的職位循環是這樣的:

/* Start the Loop */ 
while (have_posts()) { 
    the_post(); 
    get_template_part('content', ''); 
} 

所以所有的,可以參考後輸出此頁面模板文件控制是使用內容過濾模板。在您的artisteer 3.1主題中,您將擁有多個content.php文件,上面的函數將調用content.php,但是您可以爲您的頁面設置content-page.php等等。讓我們來看看我的content.php ...

global $post; 
theme_post_wrapper(
    array(
      'id' => theme_get_post_id(), 
      'class' => theme_get_post_class(), 
      'thumbnail' => theme_get_post_thumbnail(), 
      'title' => theme_get_meta_option($post->ID, 'theme_show_page_title') ? get_the_title() : '', 
      'heading' => theme_get_option('theme_'.(is_single()?'single':'posts').'_article_title_tag'), 
      'before' => theme_get_metadata_icons('date,category', 'header'), 

      'content' => theme_get_excerpt(), 
      'after' => theme_get_metadata_icons('', 'footer') 
    ) 
); 

所以這個文件真正做的是確定哪些數據部分包含在這個模板中。當我在這裏鑽了下來時,我開始惱火......哪裏是打印我的HTML元素的實際代碼?我可以在哪裏開始「黑客」我的主題?正如你可能看到的,上面的'before'的行包含項目的'data',category'和一個額外的樣式設置值'header'。因此,讓我們看看我們的主題的functions.php該功能...

function theme_get_metadata_icons($icons = '', $class=''){ 
     global $post; 
     if (!is_string($icons) || theme_strlen($icons) == 0) return; 
     $icons = explode(",", str_replace(' ', '', $icons)); 
     if (!is_array($icons) || count($icons) == 0) return; 
     $result = array(); 
     for($i = 0; $i < count($icons); $i++){ 
      $icon = $icons[$i]; 
      switch($icon){ 
       case 'date': 
        $result[] = '<span class="art-postdateicon">' . sprintf(__('<span class="%1$s">Published</span> %2$s', THEME_NS), 
            'date', 
            sprintf('<span class="entry-date" title="%1$s">%2$s</span>', 
             esc_attr(get_the_time()), 
             get_the_date() 
            ) 
           ) . '</span>'; 
       break; 
       case 'category': 
        $categories = get_the_category_list(', '); 
        if(theme_strlen($categories) == 0) break; 
        $result[] = '<span class="art-postcategoryicon">' . sprintf(__('<span class="%1$s">Posted in</span> %2$s', THEME_NS), 'categories', get_the_category_list(', ')) . '</span>'; 
       break; 
//other options such as author etc. are included here by default, I took them out for the sake of this example... 
      } 
     } 
     $result = implode(theme_get_option('theme_metadata_separator'), $result); 
     if (theme_is_empty_html($result)) return; 
     return "<div class=\"art-post{$class}icons art-metadata-icons\">{$result}</div>"; 
    } 

所以該功能只提取了一些數據,並把它封裝在一些主題造型,但我仍然沒有找到,我可以註釋掉包含「posted by」等信息的實際html元素。 請記住我已經失去了日期戳記,所以我認爲它已被註釋掉了。

最後看的地方現在是函數theme_post_wrapper(),如果你退後一步,你會看到theme_post_wrapper()函數依次調用上面提取數據並封裝它的函數在一些造型元素。你會認爲這個函數會在functions.php中的某個地方?但是,沒有......對於功能theme_post_wrapper目錄搜索(表明,它是在主題文件庫/ wrappers.php它看起來是這樣的:

function theme_post_wrapper($args = '') { 
    $args = wp_parse_args($args, 
     array(
      'id' => '', 
      'class' => '', 
      'title' => '', 
      'heading' => 'h2', 
      'thumbnail' => '', 
      'before' => '', 
      'content' => '', 
      'after' => '' 
     ) 
    ); 

    /* 
     var_dump($args); 
     die; 
    */ 

    extract($args); 
    if (theme_is_empty_html($title) && theme_is_empty_html($content)) return; 
    if ($id) { 
     $id = ' id="' . $id . '"'; 
    } 
    if ($class) { 
     $class = ' ' . $class; 
    } 
    ?> 
<div class="art-box art-post<?php echo $class; ?>"<?php echo $id; ?>> 
     <div class="art-box-body art-post-body"> 
       <div class="art-post-inner art-article"> 
       <?php 
        if (!theme_is_empty_html($title)){ 
         echo '<'.$heading.' class="art-postheader">'$before.': '.$title.' <span class="published_date">('.$after.')</span></'.$heading.'>'; 
        //original: echo '<'.$heading.' class="art-postheader">'.$title.'</'.$heading.'>'; 
        } 
        echo $thumbnail; 
        ?> 
        <div class="art-postcontent"> 
         <!-- article-content --> 
         <?php echo $content; ?> 
         <!-- /article-content --> 
        </div> 
        <div class="cleared"></div> 
        <?php 
       ?> 
       </div> 
      <div class="cleared"></div> 
     </div> 
    </div> 

這裏是我的元數據元素最後的印刷,現在我感到賓至如歸,再次感受到了這個世界的一切,我再一次感謝Artisteer,雖然它有點混亂,並且花費了相當多的時間來研究這個問題上的螺母和螺栓。我的問題的解決方案:Artisteer的工作原理如下:當您選擇不在主題中包含日期或作者元數據時,artisteer不會僅關閉某個選項或將這些元素的打印代碼註釋掉, t生成t帽子代碼。所以我不得不手動把它放回去。足夠公平 - 我猜artisteer的主題不會被黑客攻擊並以這種方式進行調整,但我仍然喜歡他們比那些二十世紀和二十世紀主題的邏輯更好= p